~ubuntu-branches/ubuntu/trusty/elida/trusty

« back to all changes in this revision

Viewing changes to elidad

  • Committer: Bazaar Package Importer
  • Author(s): Anibal Monsalve Salazar
  • Date: 2009-07-05 13:14:40 UTC
  • Revision ID: james.westby@ubuntu.com-20090705131440-mf19uy569vlb9rdo
Tags: 0.4
* Don't overwrite result/$pkg if it has an old version of $pkg
* Don't use perl to cumpute dates
* Support bindmounts (closes: 488335)
* Fix out-of-date-standards-version
* Fix copyright-refers-to-versionless-license-file
* Fix maintainer-script-ignores-errors
* Fix wrong-name-for-changelog-of-native-package

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
#!/bin/bash
2
2
 
3
 
# Copyright 2007-2008 Anibal Monsalve Salazar <anibal@debian.org>
 
3
# Copyright 2007-2009 Anibal Monsalve Salazar <anibal@debian.org>
4
4
#
5
5
# This program is free software; you can redistribute it and/or modify it
6
6
# under the terms of the GNU General Public License as published by the
23
23
 
24
24
makedirs
25
25
 
26
 
piupart_mirrors=
 
26
piuparts_mirrors=
 
27
pbuilder_mirrors=
 
28
piuparts_bindmounts=
 
29
pbuilder_bindmounts=
 
30
regex="^file:(.*)"
27
31
for mirror in $MIRRORS
28
32
do
29
 
    piupart_mirrors="-m $mirror $piupart_mirrors"
 
33
    if [ -z "$pbuilder_mirrors" ]
 
34
    then
 
35
        pbuilder_mirrors="deb $mirror sid main"
 
36
        piuparts_mirrors="-m '$mirror main'"
 
37
    else
 
38
        pbuilder_mirrors="$pbuilder_mirrors | deb $mirror sid main"
 
39
        piuparts_mirrors="$piuparts_mirrors -m '$mirror main'"
 
40
    fi
 
41
 
 
42
    if [[ $mirror =~ $regex ]]
 
43
    then
 
44
        if [ -z "$pbuilder_bindmounts" ]
 
45
        then
 
46
            pbuilder_bindmounts="${BASH_REMATCH[1]}"
 
47
            piuparts_bindmounts="--bindmount ${BASH_REMATCH[1]}"
 
48
        else
 
49
            pbuilder_bindmounts="$pbuilder_bindmounts ${BASH_REMATCH[1]}"
 
50
            piuparts_bindmounts="$piuparts_bindmounts --bindmount ${BASH_REMATCH[1]}"
 
51
        fi
 
52
    fi
30
53
done
31
54
 
 
55
pbuilder_mirrors="'$pbuilder_mirrors'"
 
56
 
 
57
if [ -n "$pbuilder_bindmounts" ]
 
58
then
 
59
    pbuilder_bindmounts="'$pbuilder_bindmounts'"
 
60
    pbuilder_bindmounts_option="--bindmounts"
 
61
fi
 
62
 
32
63
tmp=$(mktemp $TMP-XXXXXX)
33
64
 
34
 
if [ -n "$(ls $ELIDAHOME/inprogress)" ]
35
 
then
 
65
if [ -n "$(ls $ELIDAHOME/inprogress)" ]; then
36
66
    mv $ELIDAHOME/inprogress/* $ELIDAHOME/ready
37
67
fi
38
68
 
39
69
while [ ! -f $ELIDAHOME/elida-stop ]
40
70
do
 
71
    #dt=$(perl -e '$dt=time-(stat("'$ELIDAHOME/pbuilder_update_unstable.log'"))[9];print"$dt\n"')
 
72
    if [ -f $ELIDAHOME/pbuilder_update_unstable.log ]; then
 
73
        dt=$(( $( date +%s ) - $( date --reference=$ELIDAHOME/pbuilder_update_unstable.log +%s ) ))
 
74
    else
 
75
        dt=9999999
 
76
    fi
 
77
    if [ $dt -gt 10800 ]; then
 
78
        log=$ELIDAHOME/pbuilder_update_unstable.log
 
79
        echo pbuilder update --override-config --distribution unstable $pbuilder_bindmounts_option $pbuilder_bindmounts --othermirror $pbuilder_mirrors >> $log
 
80
        eval pbuilder update --override-config --distribution unstable $pbuilder_bindmounts_option $pbuilder_bindmounts --othermirror $pbuilder_mirrors >> $log 2>&1
 
81
        chmod 664 $log
 
82
        chown $USERNAME:$GROUPNAME $log
 
83
    fi
 
84
   
41
85
    for pdv in $(ls -1rt $ELIDAHOME/ready)
42
86
    do
43
87
        [ -f $ELIDAHOME/elida-stop ] && break
46
90
        apt-get update > $log 2>&1
47
91
        chmod 664 $log
48
92
        chown $USERNAME:$GROUPNAME $log
49
 
        dt=$(perl -e '$dt=time-(stat("'$ELIDAHOME/pbuilder_update_unstable.log'"))[9];print"$dt\n"')
50
 
        if [ $dt -gt 10800 ]
51
 
        then
52
 
            log=$ELIDAHOME/pbuilder_update_unstable.log
53
 
            pbuilder update unstable >> $log 2>&1
54
 
            chmod 664 $log
55
 
            chown $USERNAME:$GROUPNAME $log
56
 
        fi
57
93
 
58
94
        [ -f $ELIDAHOME/ready/$pdv ] || continue
59
95
 
61
97
        pkg=${pdv%_*}
62
98
        ver=${pdv#*_}
63
99
        . $ELIDAHOME/inprogress/$pdv
64
 
        makedir $ELIDAHOME/result/$pkg
65
 
        rm -f $ELIDAHOME/result/$pkg/*
 
100
 
 
101
        if [ -d "$ELIDAHOME/result/$pkg" ]; then
 
102
            dsc_old=$( echo $ELIDAHOME/result/$pkg/${pkg}_*.dsc )
 
103
            if [ -f "$dsc_old" ]; then
 
104
                pdv_old=${dsc_old##*/}
 
105
                pdv_old=${pdv_old%*.dsc}
 
106
                if [ "$pdv" == "$pdv_old" ]; then
 
107
                    rm -fr $ELIDAHOME/result/$pkg/*
 
108
                else
 
109
                    rm -fr $ELIDAHOME/result/$pdv_old
 
110
                    mv $ELIDAHOME/result/$pkg $ELIDAHOME/result/$pdv_old
 
111
                    makedir $ELIDAHOME/result/$pkg
 
112
                fi
 
113
            else
 
114
                rm -fr $ELIDAHOME/result/$pkg/*
 
115
            fi
 
116
        else
 
117
            makedir $ELIDAHOME/result/$pkg
 
118
        fi
 
119
 
66
120
        log=$ELIDAHOME/result/$pkg/${pdv}_$ARCH.result.log
67
121
        rm -f $ELIDAHOME/result/$pkg/*$ver*
68
122
 
70
124
        chmod 664 $log
71
125
        echo $(hostname; dpkg --print-architecture; dpkg -l elida lintian piuparts pbuilder | grep ^ii | awk '{print $2,$3}') >> $log
72
126
        echo >> $log
73
 
        pbuilder build --buildresult $ELIDAHOME/result/$pkg $ELIDAHOME/source/$pkg/$pdv.dsc 2>&1 | grep -v 'using uid of process' >> $log
 
127
        echo pbuilder build --override-config --distribution unstable $pbuilder_bindmounts_option $pbuilder_bindmounts --othermirror $pbuilder_mirrors --buildresult $ELIDAHOME/result/$pkg $ELIDAHOME/source/$pkg/$pdv.dsc "2>&1 | grep -v 'using uid of process'" >> $log
 
128
        eval pbuilder build --override-config --distribution unstable $pbuilder_bindmounts_option $pbuilder_bindmounts --othermirror $pbuilder_mirrors --buildresult $ELIDAHOME/result/$pkg $ELIDAHOME/source/$pkg/$pdv.dsc 2>&1 | grep -v 'using uid of process' >> $log
74
129
        chmod 2775 $ELIDAHOME/result $ELIDAHOME/result/$pkg
75
130
        chmod 664 $ELIDAHOME/result/$pkg/*
76
131
        chown $USERNAME:$GROUPNAME $ELIDAHOME/result/$pkg/*
77
132
 
78
 
        if [ -e $ELIDAHOME/result/$pkg/${pdv}_$ARCH.changes ]
79
 
        then
80
 
            #rm -f $ELIDAHOME/public_html/debian/pool/$pkg
81
 
            #su - pbuilder -c "ln -s  ../../../result/$pkg $ELIDAHOME/public_html/debian/pool/$pkg; $ELIDAHOME/bin/pkgs"
82
 
 
 
133
        if [ -e $ELIDAHOME/result/$pkg/${pdv}_$ARCH.changes ]; then
83
134
            echo >> $log
84
135
            echo "$ELIDAHOME/result/$pkg/${pdv}_$ARCH.changes:" >> $log
85
136
            cat $ELIDAHOME/result/$pkg/${pdv}_$ARCH.changes >> $log
98
149
                dpkg -c $f >> $log 2>&1
99
150
            done
100
151
 
 
152
            if [ -x "$LOCALARCHIVESCRIPT" ]
 
153
            then
 
154
                su - $USERNAME -c "$LOCALARCHIVESCRIPT $pkg"
 
155
            fi
 
156
 
101
157
            for f in $ELIDAHOME/result/$pkg/*$ver*deb
102
158
            do
103
159
                echo >> $log
104
 
                echo "piuparts -p -N $piupart_mirrors $f" >> $log
105
 
                piuparts -p -N $piupart_mirrors $f >> $log 2>&1
 
160
                echo piuparts -p -N $piuparts_bindmounts $piuparts_mirrors $f "2>&1 | grep -v '/dev/pts not mounted'" >> $log
 
161
                eval piuparts -p -N $piuparts_bindmounts $piuparts_mirrors $f 2>&1 | grep -v '/dev/pts not mounted' >> $log 2>&1
106
162
            done
107
163
 
108
164
            echo >> $log
109
 
            echo "lintian -i --show-overrides $ELIDAHOME/result/$pkg/${pdv}_$ARCH.changes" >> $log
110
 
            su - $USERNAME -c "lintian -i --show-overrides $ELIDAHOME/result/$pkg/${pdv}_$ARCH.changes" >> $log 2>&1
 
165
            echo "lintian -i --show-overrides --pedantic $ELIDAHOME/result/$pkg/${pdv}_$ARCH.changes" >> $log
 
166
            su - $USERNAME -c "lintian -i --show-overrides --pedantic $ELIDAHOME/result/$pkg/${pdv}_$ARCH.changes" >> $log 2>&1
111
167
        fi
112
168
 
113
169
        bzip2 -f -9 $log
117
173
        mpack -s "Re: $subject" -o $tmp $log
118
174
        (echo -e "To: $from\nFrom: $FROM\nBcc: $BCC\nIn-Reply-To: $message_id\nUser-Agent: elida/$ELIDAVERSION"; cat $tmp) | $SENDMAIL -t
119
175
 
120
 
        mv $ELIDAHOME/inprogress/$pdv $ELIDAHOME/done/$pdv
 
176
        mv $ELIDAHOME/inprogress/$pdv "$ELIDAHOME/done/$pdv"
121
177
 
122
 
        if [ -f $ELIDAHOME/elida-hup ]
123
 
        then
 
178
        if [ -f $ELIDAHOME/elida-hup ]; then
124
179
            rm -f $ELIDAHOME/elida-hup
125
180
            break
126
181
        fi
127
182
    done
128
 
    sleep 3
 
183
    sleep 10
129
184
done
130
185
 
131
186
rm -f $ELIDAHOME/elida-stop