Imported Debian version 0.48
Javier Fernandez-Sanguino
12 years ago
59 | 59 | return 0 |
60 | 60 | |
61 | 61 | def usage(): |
62 | sys.stderr.write('usage: checkrestart [-v]\n') | |
62 | sys.stderr.write('usage: checkrestart [-vhpa]\n') | |
63 | 63 | |
64 | 64 | def main(): |
65 | 65 | process = None |
67 | 67 | |
68 | 68 | # Process options |
69 | 69 | try: |
70 | opts, args = getopt.getopt(sys.argv[1:], "hv", ["help", "verbose"]) | |
70 | opts, args = getopt.getopt(sys.argv[1:], "hvpa", ["help", "verbose", "packages", "all"]) | |
71 | 71 | except getopt.GetoptError, err: |
72 | 72 | # print help information and exit: |
73 | print str(err) # will print something like "option -a not recognized" | |
73 | print str(err) # will print something like "option -x not recognized" | |
74 | 74 | usage() |
75 | 75 | sys.exit(2) |
76 | ||
77 | # Global variables set through the command line | |
78 | global verbose, onlyPackageFiles, allFiles | |
76 | 79 | verbose = False |
80 | # Only look for deleted files that belong to packages | |
81 | onlyPackageFiles = False | |
82 | # Look for any deleted file | |
83 | allFiles = False | |
84 | ||
77 | 85 | for o, a in opts: |
78 | 86 | if o == "-v": |
79 | 87 | verbose = True |
80 | 88 | elif o in ("-h", "--help"): |
81 | 89 | usage() |
82 | 90 | sys.exit() |
91 | elif o in ("-p", "--packages"): | |
92 | onlyPackageFiles = True | |
93 | elif o in ("-a", "--all"): | |
94 | allFiles = True | |
95 | onlyPackageFiles = False | |
83 | 96 | else: |
84 | 97 | assert False, "unhandled option" |
85 | 98 | |
232 | 245 | |
233 | 246 | # Tells if a file has to be considered a deleted file |
234 | 247 | # Returns: |
235 | # - 0 (NO) for known locations of files which might be delted | |
248 | # - 0 (NO) for known locations of files which might be deleted | |
236 | 249 | # - 1 (YES) for valid deleted files we are interested in |
237 | 250 | def isdeletedFile (f): |
251 | if allFiles: | |
252 | return 1 | |
238 | 253 | # We don't care about log files |
239 | 254 | if f.startswith('/var/log/'): |
240 | 255 | return 0 |
259 | 274 | # Skip mutt files |
260 | 275 | if re.compile("/tmp/mutt-\w+-[\-0-9]").search(f): |
261 | 276 | return 0 |
277 | # Skip font files | |
278 | if f.startswith('/var/cache/fontconfig/'): | |
279 | return 0 | |
280 | # Skip, if asked to, files that do not belong to any package | |
281 | if onlyPackageFiles: | |
282 | dpkgQuery = ["dpkg", "--search", f] | |
283 | dpkgProc = subprocess.Popen(dpkgQuery, stdout=subprocess.PIPE, stderr=None) | |
284 | for line in dpkgProc.stdout.readlines(): | |
285 | if line.endswith(f): | |
286 | return 0 | |
287 | ||
262 | 288 | # TODO: it should only care about library files (i.e. /lib, /usr/lib and the like) |
263 | 289 | # build that check with a regexp to exclude others |
264 | 290 | if f.endswith(' (deleted)'): |
5 | 5 | .SH NAME |
6 | 6 | checkrestart \- check which processes need to be restarted after an upgrade |
7 | 7 | .SH SYNOPSIS |
8 | .B checkrestart [ -hv ] | |
8 | .B checkrestart [ -hvpa ] | |
9 | 9 | .SH DESCRIPTION |
10 | 10 | The |
11 | 11 | .B checkrestart |
39 | 39 | Generate detailed output. This output includes the list of all |
40 | 40 | processes found using deleted files or descriptors as well as the deleted files |
41 | 41 | and descriptors found. |
42 | ||
43 | .TP | |
44 | .BI -p, --package | |
45 | Only process deleted files that belong to a package, ignoring deleted files | |
46 | which do not have an associated package in the package system. | |
47 | ||
48 | .TP | |
49 | .BI -a, --all | |
50 | Process all deleted files regardless of location. This makes | |
51 | the program analyse deleted files even if they would be discarded | |
52 | because they are located in locations, such as | |
53 | .I /tmp | |
54 | , which are known to produce false positives. It will take preceded if used | |
55 | simultaneously with the | |
56 | .I -p | |
57 | option. | |
42 | 58 | |
43 | 59 | .SH EXIT STATUS |
44 | 60 |
0 | 0 | #!/bin/sh -e |
1 | ||
2 | # debget - Fetch a .deb for a package in APT's database | |
3 | ||
4 | # Copyright (C) 2001,2002 Matt Zimmerman <mdz@debian.org> | |
5 | ||
6 | # This program is free software; you can redistribute it and/or modify | |
7 | # it under the terms of the GNU General Public License as published by | |
8 | # the Free Software Foundation; either version 2, or (at your option) | |
9 | # any later version. | |
10 | ||
11 | # This program is distributed in the hope that it will be useful, | |
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | # GNU General Public License for more details. | |
15 | ||
16 | # You should have received a copy of the GNU General Public License | |
17 | # along with this program; if not, write to the Free Software | |
18 | # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA | |
19 | # 02111-1307, USA. | |
20 | # | |
21 | ||
1 | 22 | |
2 | 23 | # Set the locale so we can control apt-get errors properly |
3 | 24 | LC_ALL=C |
24 | 45 | echo "ERROR: There was an error calling apt-get. Check that the database is in a consistent state and try again" |
25 | 46 | exit 1 |
26 | 47 | fi |
48 | if ! ls /var/lib/apt/lists/ |grep Release >/dev/null; then | |
49 | echo "ERROR: Your apt lists are empty. Update your package database" | |
50 | echo "using 'apt-get update'" | |
51 | fi | |
52 | ||
27 | 53 | |
28 | 54 | for pkgspec in $*; do |
29 | 55 | apt-get -q2 --print-uris --reinstall install "$pkgspec" 2>/dev/null >/dev/null |
30 | 56 | if [ $? -ne 0 ] ; then |
31 | 57 | echo "ERROR: There is no '$pkgspec' package. Sorry." |
58 | echo "If you believe the package exists then consider updating your." | |
59 | echo "package database using 'apt-get update'" | |
32 | 60 | continue |
33 | 61 | fi |
34 | 62 | # This provides only one version, but it's better than the apt-get |
0 | .\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.07) | |
0 | .\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.07) | |
1 | 1 | .\" |
2 | 2 | .\" Standard preamble: |
3 | 3 | .\" ======================================================================== |
4 | .de Sh \" Subsection heading | |
5 | .br | |
6 | .if t .Sp | |
7 | .ne 5 | |
8 | .PP | |
9 | \fB\\$1\fR | |
10 | .PP | |
11 | .. | |
12 | 4 | .de Sp \" Vertical space (when we can't use .PP) |
13 | 5 | .if t .sp .5v |
14 | 6 | .if n .sp |
52 | 44 | .el .ds Aq ' |
53 | 45 | .\" |
54 | 46 | .\" If the F register is turned on, we'll generate index entries on stderr for |
55 | .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index | |
47 | .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index | |
56 | 48 | .\" entries marked with X<> in POD. Of course, you'll have to process the |
57 | 49 | .\" output yourself in some meaningful fashion. |
58 | 50 | .ie \nF \{\ |
0 | debian-goodies (0.48) unstable; urgency=low | |
1 | ||
2 | * Provide dhomepage application (and manual page) that can be used | |
3 | to open a packages' homepage. This program was provided by | |
4 | Thadeu Lima de Souza Cascardo (Closes: 500397) | |
5 | * Document degrep, dfgrep and dzgrep through the dgrep manpage by creating a | |
6 | symlink during package installation, thanks to Xavier Luthi for the | |
7 | patch. (Closes: 403845, 403844, 403843) | |
8 | * Add a proper (C) and license header to debget and dpigs | |
9 | * checkrestart: | |
10 | - skip deleted files in /var/cache/fontconfig/ | |
11 | - add a 'a' ('all') command line switch to process all deleted | |
12 | files, regardless of location | |
13 | - add a 'p' ('package') command line switch to process only | |
14 | files which are associated with a given package | |
15 | - adjust command line options in usage() | |
16 | (Closes: 497611) | |
17 | * dpigs: Use script snipet provided by Aaron M. Ucko to make it possible | |
18 | to group by source package, use a new (-S, --source) option. | |
19 | (Closes: 511349) | |
20 | * debget: | |
21 | - check the contents of /var/lib/apt/lists before executing | |
22 | apt to warn if there is no Release information there | |
23 | - document that APT's package database needs to be up-to-dat if a | |
24 | package is not found (might happen to aptitude users) | |
25 | * popbugs: adjust error message: | |
26 | - popularity contest is now run through cron.daily | |
27 | - provide the command line needed to generate the popconf data | |
28 | (Closes: 500432) | |
29 | ||
30 | ||
31 | -- Javier Fernandez-Sanguino Pen~a <jfs@debian.org> Sun, 25 Jan 2009 20:59:06 +0100 | |
32 | ||
0 | 33 | debian-goodies (0.47) unstable; urgency=low |
1 | 34 | |
2 | 35 | * debget: use 'head' instead of 'tail' when using apt-get --print-uris to |
6 | 6 | |
7 | 7 | Package: debian-goodies |
8 | 8 | Architecture: all |
9 | Depends: dctrl-tools | grep-dctrl, curl, python (>= 2.4), lsof, whiptail | dialog, less | |
9 | Depends: dctrl-tools | grep-dctrl, debianutils, curl, python (>= 2.4), lsof, whiptail | dialog, less | |
10 | 10 | Suggests: popularity-contest, xdg-utils, zenity |
11 | 11 | Conflicts: debget |
12 | 12 | Replaces: debget |
7 | 7 | |
8 | 8 | Copyright: |
9 | 9 | |
10 | # Copyright (C) 2001 Matt Zimmerman <mdz@debian.org> | |
10 | The programs in this package hold the following copyrights: | |
11 | ||
12 | - checkrestart: | |
13 | Copyright (C) 2001 Matt Zimmerman <mdz@debian.org> | |
14 | Copyright (C) 2007,2008 Javier Fernandez-Sanguino <jfs@debian.org> | |
15 | ||
16 | - debget, dgrep, dglob, dpigs, popbugs | |
17 | ||
18 | Copyright (C) 2001-2004 Matt Zimmerman <mdz@debian.org> | |
19 | ||
20 | - debman | |
21 | Copyright (C) 2003 Colin Watson <cjwatson@debian.org> | |
22 | ||
23 | - which-pkg-broke | |
24 | ||
25 | Written by Bill Gribble <grib@billgribble.com> and placed in the public | |
26 | domain. | |
27 | ||
28 | - dhomepage | |
29 | ||
30 | Copyright (C) 2008 Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com> | |
31 | ||
32 | - debian/ contents | |
33 | ||
34 | Copyright (C) 2001-2004 Matt Zimmerman <mdz@debian.org> | |
35 | Copyright (C) 2006-2009 Javier Fernandez-Sanguino <jfs@debian.org> | |
36 | ||
37 | ||
38 | The license of all programs in this package, excluding 'which-pkg-broke' which | |
39 | is in the public domain, is: | |
11 | 40 | |
12 | 41 | # This program is free software; you can redistribute it and/or modify |
13 | 42 | # it under the terms of the GNU General Public License as published by |
24 | 53 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, |
25 | 54 | # MA 02110-1301 USA |
26 | 55 | |
56 | ||
27 | 57 | On Debian systems, a copy of the GNU General Public License may be |
28 | 58 | found in /usr/share/common-licenses/GPL. |
61 | 61 | dh_installexamples |
62 | 62 | dh_link |
63 | 63 | dh_compress |
64 | ln -s dgrep.1.gz debian/debian-goodies/usr/share/man/man1/degrep.1.gz | |
65 | ln -s dgrep.1.gz debian/debian-goodies/usr/share/man/man1/dfgrep.1.gz | |
66 | ln -s dgrep.1.gz debian/debian-goodies/usr/share/man/man1/dzgrep.1.gz | |
64 | 67 | dh_fixperms |
65 | 68 | dh_installdeb |
66 | 69 | dh_gencontrol |
0 | .\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.07) | |
0 | .\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.07) | |
1 | 1 | .\" |
2 | 2 | .\" Standard preamble: |
3 | 3 | .\" ======================================================================== |
4 | .de Sh \" Subsection heading | |
5 | .br | |
6 | .if t .Sp | |
7 | .ne 5 | |
8 | .PP | |
9 | \fB\\$1\fR | |
10 | .PP | |
11 | .. | |
12 | 4 | .de Sp \" Vertical space (when we can't use .PP) |
13 | 5 | .if t .sp .5v |
14 | 6 | .if n .sp |
52 | 44 | .el .ds Aq ' |
53 | 45 | .\" |
54 | 46 | .\" If the F register is turned on, we'll generate index entries on stderr for |
55 | .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index | |
47 | .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index | |
56 | 48 | .\" entries marked with X<> in POD. Of course, you'll have to process the |
57 | 49 | .\" output yourself in some meaningful fashion. |
58 | 50 | .ie \nF \{\ |
0 | .\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.07) | |
0 | .\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.07) | |
1 | 1 | .\" |
2 | 2 | .\" Standard preamble: |
3 | 3 | .\" ======================================================================== |
4 | .de Sh \" Subsection heading | |
5 | .br | |
6 | .if t .Sp | |
7 | .ne 5 | |
8 | .PP | |
9 | \fB\\$1\fR | |
10 | .PP | |
11 | .. | |
12 | 4 | .de Sp \" Vertical space (when we can't use .PP) |
13 | 5 | .if t .sp .5v |
14 | 6 | .if n .sp |
52 | 44 | .el .ds Aq ' |
53 | 45 | .\" |
54 | 46 | .\" If the F register is turned on, we'll generate index entries on stderr for |
55 | .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index | |
47 | .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index | |
56 | 48 | .\" entries marked with X<> in POD. Of course, you'll have to process the |
57 | 49 | .\" output yourself in some meaningful fashion. |
58 | 50 | .ie \nF \{\ |
160 | 152 | \&\fBgrep\fR documentation (i.e. the manpage or the texinfo manual) for |
161 | 153 | a complete listing. Only a few options are excluded because they do not |
162 | 154 | conform with the intended behaviour, see the list below. |
163 | .Sh "Options of grep that are not supported by dgrep" | |
155 | .SS "Options of grep that are not supported by dgrep" | |
164 | 156 | .IX Subsection "Options of grep that are not supported by dgrep" |
165 | 157 | .IP "\fB\-r\fR, \fB\-\-recursive\fR, \fB\-d\fR \fIrecurse\fR, \fB\-\-directories\fR=\fIrecurse\fR" 4 |
166 | 158 | .IX Item "-r, --recursive, -d recurse, --directories=recurse" |
0 | #!/bin/sh | |
1 | # | |
2 | # Copyright (C) 2008 Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com> | |
3 | # | |
4 | # This program is free software; you can redistribute it and/or modify | |
5 | # it under the terms of the GNU General Public License as published by | |
6 | # the Free Software Foundation; either version 2 of the License, or | |
7 | # (at your option) any later version. | |
8 | # | |
9 | # This program is distributed in the hope that it will be useful, | |
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 | # GNU General Public License for more details. | |
13 | # | |
14 | # You should have received a copy of the GNU General Public License along | |
15 | # with this program; if not, write to the Free Software Foundation, Inc., | |
16 | # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | |
17 | # | |
18 | ||
19 | VERSION="0.1" | |
20 | ||
21 | function version() | |
22 | { | |
23 | echo "dhomepage version $VERSION" | |
24 | echo "dhomepage is licensed under the GNU General Public License" | |
25 | echo "version 2 or later" | |
26 | } | |
27 | ||
28 | function usage() | |
29 | { | |
30 | echo "dhomepage PACKAGE" | |
31 | echo "" | |
32 | echo "--version Show version information" | |
33 | echo "--help Show this help message" | |
34 | echo "" | |
35 | } | |
36 | ||
37 | PACKAGE="$1" | |
38 | ||
39 | if [ -z "$PACKAGE" ]; then | |
40 | usage | |
41 | exit 0 | |
42 | fi | |
43 | ||
44 | case "$1" in | |
45 | --help) | |
46 | usage | |
47 | exit 0 | |
48 | ;; | |
49 | --version) | |
50 | version | |
51 | exit 0 | |
52 | ;; | |
53 | esac | |
54 | ||
55 | HOMEPAGE=`grep-aptavail -PX $PACKAGE -s Homepage | sed 's,^Homepage: ,,'` | |
56 | ||
57 | if [ -z "$HOMEPAGE" ]; then | |
58 | HOMEPAGE=`grep-aptavail -PX $PACKAGE -s Description | \ | |
59 | sed -n '/^ Homepage: /{s,^ Homepage: ,,;p}'` | |
60 | fi | |
61 | ||
62 | if [ -z "$HOMEPAGE" ]; then | |
63 | echo "$PACKAGE has no homepage" | |
64 | exit 1 | |
65 | fi | |
66 | ||
67 | sensible-browser "$HOMEPAGE" |
0 | .\" | |
1 | .\" Copyright (C) 2008 Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com> | |
2 | .\" | |
3 | .\" This program is free software; you can redistribute it and/or modify | |
4 | .\" it under the terms of the GNU General Public License as published by | |
5 | .\" the Free Software Foundation; either version 2 of the License, or | |
6 | .\" (at your option) any later version. | |
7 | .\" | |
8 | .\" This program is distributed in the hope that it will be useful, | |
9 | .\" but WITHOUT ANY WARRANTY; without even the implied warranty of | |
10 | .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
11 | .\" GNU General Public License for more details. | |
12 | .\" | |
13 | .\" You should have received a copy of the GNU General Public License along | |
14 | .\" with this program; if not, write to the Free Software Foundation, Inc., | |
15 | .\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | |
16 | .\" | |
17 | ||
18 | .TH DHOMEPAGE 1 2008-09-27 | |
19 | ||
20 | .SH NAME | |
21 | dhomepage - show the homepage of a package in a browser | |
22 | ||
23 | .SH SYNOPSIS | |
24 | dhomepage PACKAGE | |
25 | ||
26 | .SH DESCRIPTION | |
27 | Shows the homepage of a Debian package using a sensible browser. | |
28 | ||
29 | .SH OPTIONS | |
30 | ||
31 | .TP | |
32 | \fB\-\-help\fR | |
33 | Print help message | |
34 | ||
35 | .TP | |
36 | \fB\-\-help\fR | |
37 | Print version message | |
38 | ||
39 | .SH EXIT STATUS | |
40 | Returns 0 if homepage was found, and 1 otherwise. | |
41 | ||
42 | .SH BUGS | |
43 | Report bugs to this man page and program to cascardo@minaslivre.org. | |
44 | ||
45 | .SH SEE ALSO | |
46 | .BR dgrep (1) | |
47 | .BR sensible-browser (1) |
0 | 0 | #!/bin/sh |
1 | ||
2 | # dpigs - Show which installed packages occupy the most space | |
3 | ||
4 | # Copyright (C) 2001,2002 Matt Zimmerman <mdz@debian.org> | |
5 | ||
6 | # This program is free software; you can redistribute it and/or modify | |
7 | # it under the terms of the GNU General Public License as published by | |
8 | # the Free Software Foundation; either version 2, or (at your option) | |
9 | # any later version. | |
10 | ||
11 | # This program is distributed in the hope that it will be useful, | |
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | # GNU General Public License for more details. | |
15 | ||
16 | # You should have received a copy of the GNU General Public License | |
17 | # along with this program; if not, write to the Free Software | |
18 | # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA | |
19 | # 02111-1307, USA. | |
20 | # | |
1 | 21 | |
2 | 22 | set -e |
3 | 23 | |
20 | 40 | LINES=10 |
21 | 41 | # grep-status provides a default |
22 | 42 | STATUS= |
43 | # Default: provide binary package information | |
44 | SOURCE=0 | |
23 | 45 | |
24 | OPTS=$(getopt -o n:s:h --long lines:,status:,help -- "$@") | |
46 | OPTS=$(getopt -o n:s:Sh --long lines:,status:,source,help -- "$@") | |
25 | 47 | eval set -- "$OPTS" |
26 | 48 | |
27 | 49 | while true; do |
33 | 55 | -s|--status) |
34 | 56 | STATUS="$2" |
35 | 57 | shift 2 |
58 | ;; | |
59 | -S|--source) | |
60 | SOURCE=1 | |
61 | shift 1 | |
36 | 62 | ;; |
37 | 63 | -h|--help) |
38 | 64 | Usage |
49 | 75 | esac |
50 | 76 | done |
51 | 77 | |
52 | grep-status -nsInstalled-size,Package -F Status ' installed' $STATUS \ | |
53 | | perl -p00l12 -e 's/\n/ /' \ | |
54 | | sort -rn \ | |
55 | | head --lines=$LINES | |
78 | if [ $SOURCE -eq 0 ] ; then | |
79 | grep-status -nsInstalled-size,Package -F Status ' installed' $STATUS \ | |
80 | | perl -p00l12 -e 's/\n/ /' \ | |
81 | | sort -rn \ | |
82 | | head --lines=$LINES | |
83 | else | |
84 | # Order by source package | |
85 | grep-status -nsInstalled-size,Source:Package -F Status ' installed' $STATUS \ | |
86 | | perl -n00a -e '$s{$F[1]}+=$F[0]; END { for(keys %s) {print"$s{$_} $_\n"} }' \ | |
87 | | sort -rn \ | |
88 | | head --lines=$LINES | |
89 | # Alternatively use this: | |
90 | # It adds details of which binary packages are | |
91 | # involved (but not how big they are), with % standing in for the source | |
92 | #grep-status -nsInstalled-size,Package,Source:Package -F Status ' installed' \ | |
93 | # $STATUS \ | |
94 | # | perl -n00al12 -e '$s{$F[2]} += $F[0]; | |
95 | # $F[1] =~ s/\Q$F[2]\E/%/; $b{$F[2]}{$F[1]} = 1; | |
96 | # END {$, = " "; for(keys %s) {print "$s{$_} $_:", sort keys %{$b{$_}}} }' \ | |
97 | # | sort -rn \ | |
98 | # | head --lines=$LINES | |
99 | fi |
0 | .\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.07) | |
0 | .\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.07) | |
1 | 1 | .\" |
2 | 2 | .\" Standard preamble: |
3 | 3 | .\" ======================================================================== |
4 | .de Sh \" Subsection heading | |
5 | .br | |
6 | .if t .Sp | |
7 | .ne 5 | |
8 | .PP | |
9 | \fB\\$1\fR | |
10 | .PP | |
11 | .. | |
12 | 4 | .de Sp \" Vertical space (when we can't use .PP) |
13 | 5 | .if t .sp .5v |
14 | 6 | .if n .sp |
52 | 44 | .el .ds Aq ' |
53 | 45 | .\" |
54 | 46 | .\" If the F register is turned on, we'll generate index entries on stderr for |
55 | .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index | |
47 | .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index | |
56 | 48 | .\" entries marked with X<> in POD. Of course, you'll have to process the |
57 | 49 | .\" output yourself in some meaningful fashion. |
58 | 50 | .ie \nF \{\ |
0 | 0 | #!/usr/bin/python |
1 | 1 | |
2 | # popbugs - Find RC bugs in packages you commonly use | |
3 | # Copyright (C) 2001-2004 Matt Zimmerman <mdz@debian.org> | |
4 | ||
5 | # This program is free software; you can redistribute it and/or modify | |
6 | # it under the terms of the GNU General Public License as published by | |
7 | # the Free Software Foundation; either version 2, or (at your option) | |
8 | # any later version. | |
9 | ||
10 | # This program is distributed in the hope that it will be useful, | |
11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | # GNU General Public License for more details. | |
14 | ||
15 | # You should have received a copy of the GNU General Public License | |
16 | # along with this program; if not, write to the Free Software | |
17 | # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA | |
18 | # 02111-1307, USA. | |
2 | 19 | # |
3 | # popbugs - Find RC bugs in packages you commonly use | |
4 | # Matt Zimmerman <mdz@debian.org> 2001 | |
5 | # | |
20 | ||
6 | 21 | |
7 | 22 | import sys |
8 | 23 | import re |
59 | 74 | sys.stderr.write(''' |
60 | 75 | There is no popularity-contest data present on your system. This |
61 | 76 | probably means that popularity-contest has not yet run since it |
62 | was installed. Try running /etc/cron.weekly/popularity-contest by | |
63 | hand to collect some data. | |
77 | was installed. Try waiting for /etc/cron.daily/popularity-contest to | |
78 | to collect some data or manually run (as root user): | |
79 | ||
80 | /usr/sbin/popularity-contest >/var/log/popularity-contest | |
64 | 81 | |
65 | 82 | ''') |
66 | 83 | sys.exit(1) |