summaryrefslogtreecommitdiffstats
path: root/bin/add-dsa-needed.sh
blob: b60e5390d463b8e74649fe3abd9da0fab28c510d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#!/bin/sh

####################
#    Copyright (C) 2014 by Raphael Geissert <geissert@debian.org>
#
#
#    This file is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, either version 3 of the License, or
#    (at your option) any later version.
#
#    This file is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this file.  If not, see <http://www.gnu.org/licenses/>.
####################

set -eu

turl="https://security-tracker.debian.org/tracker/status/release"

[ -f data/dsa-needed.txt ] || {
    echo "error: run this script from the top-level dir of the reppo" >&2
    exit 1
}

tmpd="$(mktemp -d)"
cleanup() {
    rm -r "$tmpd"
}
trap cleanup EXIT

for release in oldstable stable; do
    HOME=$tmpd w3m $turl/$release > $tmpd/$release.txt
    seen_marker=false
    while read line; do
	if ! $seen_marker; then
	    case "$line" in
		*Package*Bug*)
		    seen_marker=true
		;;
	    esac
	else
	    case "$line" in
		[a-z]*)
		    # a package
		    pkg="$(echo "$line" | awk -F' ' '{ print $1 }')" # | sed -rn 's/^([a-z][^ \t]+)/\1/;T;p')"
		    if ! grep -qE "^$pkg(/$release)?( |\$)" data/dsa-needed.txt; then
			echo "$pkg" >> $tmpd/toadd-$release.txt
		    fi
		;;
		'')
		    # end of the list of packages
		    break
		;;
	    esac
	fi
    done < $tmpd/$release.txt
done

cat $tmpd/toadd-stable.txt $tmpd/toadd-oldstable.txt | sort | uniq -d |
while read pkg; do
    printf "%s\n--\n" "$pkg" >> data/dsa-needed.txt
    sed -ri "/^$pkg\$/d" $tmpd/toadd-stable.txt
    sed -ri "/^$pkg\$/d" $tmpd/toadd-oldstable.txt
done

for release in oldstable stable; do
    while read pkg; do
	printf "%s/%s\n--\n" "$pkg" "$release" >> data/dsa-needed.txt
    done < $tmpd/toadd-$release.txt
done

© 2014-2024 Faster IT GmbH | imprint | privacy policy