]> git.pld-linux.org Git - projects/pld-ftp-admin.git/blame - wwwbin/rpmcheck.sh
x32 fixes (baggins?)
[projects/pld-ftp-admin.git] / wwwbin / rpmcheck.sh
CommitLineData
c808fcaf
ER
1#!/bin/sh
2# check for packages on local system with PLD-doc/PLD-update-TODO
3# Author: Elan Ruusamäe <glen@pld-linux.org>
4# Date: 2012-04-05
5
6export LC_ALL=C
7CVSROOT=:pserver:cvs@cvs.pld-linux.org:/cvsroot
8d=$-
9
c808fcaf
ER
10# generate list of package basenames from rpmdb
11rpm_pkgs() {
12 set -$d
13
14 [ -s $t/rpm.db ] || rpm -qa --qf '%{SOURCERPM} %{VERSION}\n' > $t/rpm.db
15
16 # translate pkg names to basenames
17 [ -s $t/rpm.basenames ] || sed -re 's,^(.+)-[^-]+-[^-]+ ,\1 ,' $t/rpm.db > $t/rpm.basenames
18 # uniq
19 [ -s $t/rpm.lst ] || sort -u $t/rpm.basenames > $t/rpm.lst
20}
21
22# fetch PLD-update-TODO
23cvs_todo() {
24 set -$d
25
d97493a8 26 [ -s $t/PLD-doc/PLD-update-TODO ] || (cd $t; cvs -d $CVSROOT -Q co PLD-doc/PLD-update-TODO)
c808fcaf
ER
27
28 # reformat for easier parsing
29 # amaya(13) [OLD] 9.54 [NEW] 11.0
30 # vim [OLD] 7.3.401 [NEW] 7.3.515
31 [ -s $t/rpm.todo ] || sed -rne 's,^([^( ]+).*?\[NEW\] (.+)$,\1 \2,p' $t/PLD-doc/PLD-update-TODO > $t/rpm.todo
32
33 # TODO: should uniq as well:
34 # $ grep links2 PLD-doc/PLD-update-TODO
35 # links2(22) [OLD] 2.2 [NEW] 2.6
36 # links2(25) [OLD] 2.1pre28 [NEW] 2.6
37}
38
39rpm_diff() {
40# set -$d
41
42 rpm_pkgs
43 cvs_todo
44
45 [ -s $t/rpm.diffs ] || {
46 set +e
47 while read pkg v2; do
48 v1=$(awk -vpkg=$pkg '$1 == pkg {print $2}' $t/rpm.lst)
49 [ "$v1" ] || continue
50
51 cmp=$(rpmvercmp $v1 $v2)
52 if [ $? -eq 2 ]; then
53 echo "$pkg $cmp"
54 fi
55 done < $t/rpm.todo
56 set -e
57 }
58}
59
60set -e
61t=$(mktemp -d)
62#t=.
63
64rpm_diff
65
66rm -rf $t
This page took 0.046391 seconds and 4 git commands to generate.