pax_global_header00006660000000000000000000000064122310447010014504gustar00rootroot0000000000000052 comment=a9acb50035e1ad7450ad49da48b12ad114325436 autorepo-altnode-repocop-0.15/000075500000000000000000000000001223104470100163565ustar00rootroot00000000000000autorepo-altnode-repocop-0.15/.gear/000075500000000000000000000000001223104470100173525ustar00rootroot00000000000000autorepo-altnode-repocop-0.15/.gear/rules000064400000000000000000000000071223104470100204240ustar00rootroot00000000000000tar: . autorepo-altnode-repocop-0.15/autorepo-altnode-repocop.spec000064400000000000000000000047331223104470100241700ustar00rootroot00000000000000%filter_from_requires /^repocop-unittest-build-logs/d #BuildRequires: Name: autorepo-altnode-repocop Version: 0.15 Release: alt1 BuildArch: noarch Packager: Igor Yu. Vlasenko Summary: repocop scripts for an automated packaging node Group: Development/Other License: GPL2+ #Url: Source: %name-%version.tar BuildRequires: repocop Requires: repocop > 0.67 %description %summary %prep %setup %build %install mkdir -p $RPM_BUILD_ROOT%_bindir install -m 755 repocop-* $RPM_BUILD_ROOT%_bindir %files %doc daily.conf.* %doc crontab %_bindir/* %changelog * Mon Oct 21 2013 Igor Vlasenko 0.15-alt1 - repocop TestDB interface support * Wed Jul 31 2013 Igor Vlasenko 0.14-alt1 - dropped obsolete symlinks * Tue Jul 30 2013 Igor Vlasenko 0.13-alt1 - more daily.conf * Fri Jul 26 2013 Igor Vlasenko 0.12-alt1 - html support * Fri Jul 19 2013 Igor Vlasenko 0.11-alt1 - release * Thu Jul 18 2013 Igor Vlasenko 0.10-alt6 - bugfix release * Wed Jul 17 2013 Igor Vlasenko 0.10-alt5 - fixed dependencies * Tue Jul 16 2013 Igor Vlasenko 0.10-alt4 - more altnode tags * Tue Jul 16 2013 Igor Vlasenko 0.10-alt3 - support for html report * Mon Jul 15 2013 Igor Vlasenko 0.10-alt2 - added altnode support * Mon Jul 15 2013 Igor Vlasenko 0.10-alt1 - added extra statistics reports * Fri May 10 2013 Igor Vlasenko 0.09-alt2 - support for archive task on autorepo nodes * Fri Apr 26 2013 Igor Vlasenko 0.09-alt1 - new distrodb format * Thu Apr 25 2013 Igor Vlasenko 0.08-alt1 - distrodb-extra support * Wed Jan 23 2013 Igor Vlasenko 0.07-alt1 - enabled build logs again * Tue Nov 27 2012 Igor Vlasenko 0.06-alt2 - dropped optional dependency on repocop-unittest-build-logs * Tue Nov 27 2012 Igor Vlasenko 0.06-alt1 - prometheus2 support * Fri Jul 13 2012 Igor Vlasenko 0.05-alt1 - export of watch files * Sun Jul 08 2012 Igor Vlasenko 0.04-alt1 - repocop 0.59 distrotest support * Sun Jul 08 2012 Igor Vlasenko 0.03-alt1 - repocop 0.58 support * Fri Jul 06 2012 Igor Vlasenko 0.02-alt1 - support for repocop-report-prometeus2-sqlite * Tue Jun 12 2012 Igor Vlasenko 0.01-alt1 - First build for Sisyphus. autorepo-altnode-repocop-0.15/crontab000064400000000000000000000001051223104470100177250ustar00rootroot0000000000000001 4 * * * /usr/bin/repocop-daily > $HOME/repocop-daily.log 2>&1 autorepo-altnode-repocop-0.15/daily.conf.autoextra-mgaimport000064400000000000000000000007631223104470100243450ustar00rootroot00000000000000DISTROMAP_COMPONENT=mgaimport PUBDIR=/var/ftp/pub/repocop/$DISTROMAP_COMPONENT/Sisyphus REPODIR=/var/ftp/pub/ALTLinux/$DISTROMAP_COMPONENT/Sisyphus #REPOCOP_CYBERTALK_EMAIL=viy@altlinux.org ALLRPMS="$REPODIR/noarch/RPMS.$DISTROMAP_COMPONENT $REPODIR/x86_64/RPMS.$DISTROMAP_COMPONENT $REPODIR/files/SRPMS" REPOCOP_RUN_POSTTEST_OPTS=--no-distrotest DO_rsync= DO_archdiff= DO_beehive= DO_collect=yes DO_posttest=yes DO_report=yes DO_diff=yes DO_cybertalk= DO_prometheus= DO_distromap=yes DO_archive= autorepo-altnode-repocop-0.15/daily.conf.autoimports-sisyphus000064400000000000000000000007211223104470100246010ustar00rootroot00000000000000PUBDIR=/var/ftp/pub/repocop/autoimports/Sisyphus REPODIR=/var/ftp/pub/ALTLinux/autoimports/Sisyphus DISTROMAP_COMPONENT=autoimports #REPOCOP_CYBERTALK_EMAIL=viy@altlinux.org ALLRPMS="$REPODIR/noarch/RPMS.autoimports $REPODIR/x86_64/RPMS.autoimports $REPODIR/files/SRPMS" REPOCOP_RUN_POSTTEST_OPTS=--no-distrotest DO_rsync= DO_archdiff= DO_beehive= DO_collect=yes DO_posttest=yes DO_report=yes DO_diff=yes DO_cybertalk= DO_prometheus= DO_distromap=yes DO_archive= autorepo-altnode-repocop-0.15/daily.conf.autoimports-t7000064400000000000000000000007311223104470100232450ustar00rootroot00000000000000BRANCH=t7 PUBDIR=/var/ftp/pub/repocop/autoimports/$BRANCH REPODIR=/var/ftp/pub/ALTLinux/autoimports/$BRANCH DISTROMAP_COMPONENT=autoimports #REPOCOP_CYBERTALK_EMAIL=viy@altlinux.org ALLRPMS="$REPODIR/noarch/RPMS.autoimports $REPODIR/x86_64/RPMS.autoimports $REPODIR/files/SRPMS" REPOCOP_RUN_POSTTEST_OPTS=--no-distrotest DO_rsync= DO_archdiff= DO_beehive= DO_collect=yes DO_posttest=yes DO_report=yes DO_diff=yes DO_cybertalk= DO_prometheus= DO_distromap=yes DO_archive= autorepo-altnode-repocop-0.15/daily.conf.autoperl-cpanbuilder000064400000000000000000000007651223104470100244570ustar00rootroot00000000000000DISTROMAP_COMPONENT=cpanbuilder PUBDIR=/var/ftp/pub/repocop/$DISTROMAP_COMPONENT/Sisyphus REPODIR=/var/ftp/pub/ALTLinux/$DISTROMAP_COMPONENT/Sisyphus #REPOCOP_CYBERTALK_EMAIL=viy@altlinux.org ALLRPMS="$REPODIR/noarch/RPMS.$DISTROMAP_COMPONENT $REPODIR/x86_64/RPMS.$DISTROMAP_COMPONENT $REPODIR/files/SRPMS" REPOCOP_RUN_POSTTEST_OPTS=--no-distrotest DO_rsync= DO_archdiff= DO_beehive= DO_collect=yes DO_posttest=yes DO_report=yes DO_diff=yes DO_cybertalk= DO_prometheus= DO_distromap=yes DO_archive= autorepo-altnode-repocop-0.15/daily.conf.autoports-branch-p7000064400000000000000000000006511223104470100241470ustar00rootroot00000000000000BRANCH=p7 REPODIR=/ALT/stable/$BRANCH PUBDIR=/var/ftp/pub/repocop/$BRANCH REPOCOP_RUN_COLLECT_OPTS="--skip-big-binary=280m --big-tmpdir=$HOME/tmp --big-binary=40m" REPOCOP_REPORT_ACL_OPTS="--acl-altlinux --acl-branch=$BRANCH" #REPOCOP_REPORT_HTML_OPTS="--no-by-srpm --no-by-test" DO_rsync= DO_archdiff=yes DO_beehive= DO_collect=yes DO_posttest=yes DO_report=yes DO_diff=yes DO_cybertalk= DO_prometheus=yes DO_archive=yes autorepo-altnode-repocop-0.15/daily.conf.autoports-branch-t6000064400000000000000000000006511223104470100241520ustar00rootroot00000000000000BRANCH=t6 REPODIR=/ALT/stable/$BRANCH PUBDIR=/var/ftp/pub/repocop/$BRANCH REPOCOP_RUN_COLLECT_OPTS="--skip-big-binary=280m --big-tmpdir=$HOME/tmp --big-binary=40m" REPOCOP_REPORT_ACL_OPTS="--acl-altlinux --acl-branch=$BRANCH" #REPOCOP_REPORT_HTML_OPTS="--no-by-srpm --no-by-test" DO_rsync= DO_archdiff=yes DO_beehive= DO_collect=yes DO_posttest=yes DO_report=yes DO_diff=yes DO_cybertalk= DO_prometheus=yes DO_archive=yes autorepo-altnode-repocop-0.15/daily.conf.repocop000064400000000000000000000005651223104470100220030ustar00rootroot00000000000000REPODIR=/ALT/stable/Sisyphus REPOCOP_CYBERTALK_EMAIL=sisyphus-cybertalk@lists.altlinux.org REPOCOP_REPORT_ACL_OPTS="--acl-altlinux --acl-branch=sisyphus" #REPOCOP_REPORT_HTML_OPTS="--no-by-srpm --no-by-test" DO_rsync= DO_archdiff=yes DO_beehive=yes DO_collect=yes DO_posttest=yes DO_report=yes DO_diff=yes DO_cybertalk=yes DO_prometheus=yes DO_distromap=yes DO_archive=yes autorepo-altnode-repocop-0.15/repocop-daily000075500000000000000000000206521223104470100210600ustar00rootroot00000000000000#!/bin/sh #HOME=/home/repocop export PATH=$HOME/bin:$PATH ARCHDIFFHACK=/usr/share/repocop/pkgtests/unmet-dependency-build-missing-package/_archdiff REPOCOP_CACHEDIR=$HOME/.repocop ARCHDIFFDIR=$REPOCOP_CACHEDIR/testcache/_archdiff BRANCH=sisyphus DISTROMAP_REPOSITORY=altlinux PROG="${0##*/}" quiet= DO_rsync= DO_archdiff=yes DO_beehive= DO_collect=yes DO_posttest=yes DO_report=yes DO_diff=yes DO_cybertalk= DO_prometheus= DO_distromap=yes DO_archive=yes DO_altnode=yes # import beehive logs on Tuesdays # [ `date +%u` = 2 ] && DO_beehive= REPOCOP_RUN_COLLECT_OPTS= REPOCOP_RUN_POSTTEST_OPTS= REPOCOP_REPORT_PROMETHEUS_OPTS= REPOCOP_REPORT_ACL_OPTS= [ -e $REPOCOP_CACHEDIR/daily.conf ] && . $REPOCOP_CACHEDIR/daily.conf REPODIR=${REPODIR:-~/Sisyphus} ALLRPMS=${ALLRPMS:-$REPODIR/files/noarch/RPMS $REPODIR/files/x86_64/RPMS $REPODIR/files/SRPMS} SRPMS=${SRPMS:-$REPODIR/files/SRPMS} FTPDIR=${FTPDIR:-/var/ftp} ALTNODE_DIR=${ALTNODE_DIR:-$FTPDIR/altnode/`whoami`} PUBDIR=${PUBDIR:-$FTPDIR/pub/repocop} PUB_PROMETHEUS1_DIR=${PUB_PROMETHEUS1_DIR:-$PUBDIR/prometeus} PUB_PROMETHEUS2_DIR=${PUB_PROMETHEUS2_DIR:-$PUBDIR/prometheus2} Unlink_Except() { local kept_file="$1" shift; for i in "$@"; do [ "$kept_file" != "$i" ] && ! [ -L "$i" ] && rm -f -- "$i" done } Message() { [ -z "$quiet" ] || return 0 printf %s\\n "$*" } Fatal() { printf %s\\n "$PROG: $*" >&2 exit 1 } do_rsync() { Message "rsync (nothing to do)..." } do_archdiff() { if [ -x $ARCHDIFFHACK ]; then Message "running _archdiff hack..." $ARCHDIFFHACK "$ARCHDIFFDIR" $REPODIR || exit 3 cp "$ARCHDIFFDIR"/i586.only "$ARCHDIFFDIR"/missing fi } do_beehive() { cmd=/usr/bin/repocop-process-build-logs if [ -x $cmd ]; then if [ -x ~/bin/repocop-rsync-build-logs ]; then Message "run (beehive log collect)..." repocop-rsync-beehive-logs || exit 3 fi Message "run (beehive log process)..." $cmd || exit 3 else Message "skip (beehive) - no " fi } do_collect() { Message "run (collect)..." # if repocop-run exited abnormally it should just stop repocop-run --no-posttest $REPOCOP_RUN_COLLECT_OPTS $ALLRPMS || exit 2 vacuum_opt=--novacuum [ `date +%u` = 3 ] && vacuum_opt=--vacuum repocop-purge-except -l $vacuum_opt } do_posttest() { Message "run (posttest)..." # if repocop-run exited abnormally it should just stop repocop-run --no-collect --posttest --distrotest $REPOCOP_RUN_POSTTEST_OPTS || exit 2 } do_diff() { cmd=/usr/bin/repocop-fix-srpm if [ -x $cmd ]; then Message "diff..." # SLOWER #repocop-fix-srpm --write-report --diff $REPOCOP_REPORT_ACL_OPTS $SRPMS # FASTER $cmd --write-report --diff $REPOCOP_REPORT_ACL_OPTS $REPOCOP_CACHEDIR/testcache/specfile # tmp hack to fix in repocop-fix-srpm find $REPOCOP_CACHEDIR/reports/diff/by-srpm/ -type f -size 0 -delete fi } do_report() { Message "report (txt)..." repocop-report-txt --report experimental $REPOCOP_REPORT_ACL_OPTS cmd=/usr/bin/repocop-report-html if [ -x $cmd ]; then Message "report (html)..." $cmd --report experimental $REPOCOP_REPORT_ACL_OPTS $REPOCOP_REPORT_HTML_OPTS fi rsync -a --delete-after $REPOCOP_CACHEDIR/reports $PUBDIR/ } do_cybertalk() { cmd=/usr/bin/repocop-report-email if [ -x $cmd ] && [ -n "$REPOCOP_CYBERTALK_EMAIL" ]; then Message "cybertalk..." $cmd "$REPOCOP_CYBERTALK_EMAIL" fi } # ----- prometheus ----------- do_prometheus() { cmd=/usr/bin/repocop-report-prometheus-dump if [ -x $cmd ]; then Message "prometheus..." mkdir -p $PUB_PROMETHEUS1_DIR $cmd > $PUB_PROMETHEUS1_DIR/repocop-prometeus.sql rm -f $PUB_PROMETHEUS1_DIR/repocop-prometeus.sql.gz gzip -9 $PUB_PROMETHEUS1_DIR/repocop-prometeus.sql stat $PUB_PROMETHEUS1_DIR/repocop-prometeus.sql.gz --format %y > $PUB_PROMETHEUS1_DIR/timestamp fi cmd=/usr/bin/repocop-report-prometheus2 if [ -x $cmd ]; then Message "prometheus2 (text sql)..." CURDATA=`date '+%Y%m%d'` mkdir -p $PUB_PROMETHEUS2_DIR rm -f $PUB_PROMETHEUS2_DIR/prometheus2*.sql $cmd --branch $BRANCH > $PUB_PROMETHEUS2_DIR/prometheus2-$CURDATA.sql ln -sf $PUB_PROMETHEUS2_DIR/prometheus2-$CURDATA.sql $PUB_PROMETHEUS2_DIR/prometheus2.sql rm -f $PUB_PROMETHEUS2_DIR/prometheus2-patches-*.sql cmd=/usr/bin/repocop-report-prometheus2-patches $cmd --branch $BRANCH > $PUB_PROMETHEUS2_DIR/prometheus2-patches-$CURDATA.sql ln -sf $PUB_PROMETHEUS2_DIR/prometheus2-patches-$CURDATA.sql $PUB_PROMETHEUS2_DIR/prometheus2-patches.sql fi cmd=/usr/bin/repocop-report-prometheus2-sqlite if [ -x $cmd ]; then Message "prometheus2 (sqlite)..." CURDATA=`date '+%Y%m%d'` mkdir -p $PUB_PROMETHEUS2_DIR rm -f $PUB_PROMETHEUS2_DIR/prometheus2-$CURDATA.sqlite.bz2 $cmd --branch $BRANCH ${DISTROMAP_COMPONENT:+--component "$DISTROMAP_COMPONENT"} --out $PUB_PROMETHEUS2_DIR/prometheus2-$CURDATA.sqlite bzip2 $PUB_PROMETHEUS2_DIR/prometheus2-$CURDATA.sqlite ln -sf $PUB_PROMETHEUS2_DIR/prometheus2-$CURDATA.sqlite.bz2 $PUB_PROMETHEUS2_DIR/prometheus2.sqlite.bz2 Unlink_Except $PUB_PROMETHEUS2_DIR/prometheus2-$CURDATA.sqlite.bz2 $PUB_PROMETHEUS2_DIR/prometheus2-*.sqlite.bz2 fi } # ---- end prometheus ---- Pack_and_Rotate() { local destdir=$1 local fileprefix=$2 shift;shift; mkdir -p $destdir/ local CURDATA=`date '+%Y%m%d'` rm -rf $destdir/$fileprefix-$CURDATA.tar.gz tar czf $destdir/$fileprefix-$CURDATA.tar.gz "$@" ln -sf $fileprefix-$CURDATA.tar.gz $destdir/$fileprefix-current.tar.gz Unlink_Except $destdir/$fileprefix-$CURDATA.tar.gz $destdir/$fileprefix* } do_distromap() { cmd=/usr/bin/repocop-report-distrodb if [ -x $cmd ]; then Message "distromap-db..." $cmd --branch $BRANCH ${DISTROMAP_COMPONENT:+--component "$DISTROMAP_COMPONENT"} distrodb_main_file=repocop-distrodb-$BRANCH distrodb_extra_file=repocop-distrodb-extra-$BRANCH [ -n "$DISTROMAP_COMPONENT" ] && distrodb_main_file="$distrodb_main_file-$DISTROMAP_COMPONENT" Pack_and_Rotate $PUBDIR/data $distrodb_extra_file -C ~ .cache/distrodb/$DISTROMAP_REPOSITORY/$BRANCH/unique_data Pack_and_Rotate $PUBDIR/data $distrodb_main_file -C ~ --exclude '*/unique_data*' .cache/distro* fi } do_archive() { Message "archive..." Pack_and_Rotate $PUBDIR/data repocop-report -C ~ .repocop/reports/diff .repocop/reports/txt Pack_and_Rotate $PUBDIR/data repocop-data -C ~ .repocop/testcache .repocop/db .repocop/testdb [ -d $REPOCOP_CACHEDIR/testcache/watch ] && Pack_and_Rotate $PUBDIR/data repocop-watchfiles -C $REPOCOP_CACHEDIR/testcache watch [ -d $REPOCOP_CACHEDIR/testcache/specfile ] && Pack_and_Rotate $PUBDIR/data repocop-specfiles -C $REPOCOP_CACHEDIR/testcache specfile ln -f .repocop/db/freedesktop-desktop.db $PUBDIR/data/ } _altnode_stamp_common() { echo repocop > $ALTNODE_DIR/type echo $BRANCH > $ALTNODE_DIR/platform echo ${DISTROMAP_COMPONENT:+$DISTROMAP_COMPONENT/}$BRANCH > $ALTNODE_DIR/repository echo ${PUBDIR##$FTPDIR/}/reports > $ALTNODE_DIR/relative_path date +'%F %T %Z' > $ALTNODE_DIR/datastring } do_altnode() { Message "altnode..." _altnode_stamp_common repocop-report-total-messages > $ALTNODE_DIR/repocop_summary echo ok > $ALTNODE_DIR/status } while [ "$#" -ge 1 ]; do case "$1" in -q|--quiet) quiet=-q ;; -v|--verbose) quiet= ;; -h|--help) show_help ;; --) shift; break ;; --no-[a-z]*) arg="NO_${1##--no-}" eval $arg=1 ;; --[a-z]*) arg="DO_${1##--}" eval $arg=1 ;; *) Fatal "unrecognized option: $1" ;; esac shift done if ! repocop-cachedir-lock --lock $$ ; then echo -n "can't lock the workdir. " repocop-cachedir-lock $$ _altnode_stamp_common echo fail > $ALTNODE_DIR/status exit 1 fi # Failsafe tmp cleanup me=`whoami` [ -d /tmp/.private/$me ] && for i in /tmp/.private/$me/*; do rm -rf $i; done [ -n "$DO_rsync" ] && [ -z "$NO_rsync" ] && do_rsync [ -n "$DO_archdiff" ] && [ -z "$NO_archdiff" ] && do_archdiff [ -n "$DO_beehive" ] && [ -z "$NO_beehive" ] && do_beehive [ -n "$DO_collect" ] && [ -z "$NO_collect" ] && do_collect [ -n "$DO_posttest" ] && [ -z "$NO_posttest" ] && do_posttest [ -n "$DO_diff" ] && [ -z "$NO_diff" ] && do_diff [ -n "$DO_report" ] && [ -z "$NO_report" ] && do_report [ -n "$DO_cybertalk" ] && [ -z "$NO_cybertalk" ] && do_cybertalk [ -n "$DO_prometheus" ] && [ -z "$NO_prometheus" ] && do_prometheus [ -n "$DO_distromap" ] && [ -z "$NO_distromap" ] && do_distromap [ -n "$DO_archive" ] && [ -z "$NO_archive" ] && do_archive [ -n "$DO_altnode" ] && [ -z "$NO_altnode" ] && do_altnode repocop-cachedir-lock --unlock $$ exit 0 autorepo-altnode-repocop-0.15/repocop-report-total-messages000075500000000000000000000010721223104470100242120ustar00rootroot00000000000000#!/usr/bin/perl -w use strict; use Test::Repocop::Options; use Test::Repocop::TestDB; $Repocop::arg::reportlevel ='experimental'; &Test::Repocop::Options::get_common_options(); &Test::Repocop::Options::die_if_nothing_to_report(); my @types=qw/fail warn info experimental/; my %sum; foreach my $type (@types) { $sum{$type}=0; } my $testdb=Test::Repocop::TestDB->new(); my $cache=$testdb->get_pkg_test_status_iterator(); while (my ($rpm,$test,$status)=$cache->iterate3_filtered()) { $sum{$status}++; } foreach my $type (@types) { print $sum{$type},"\n"; }