[devscripts] 01/01: Add ltnu (Long Time No Upload)
Axel Beckert
abe at deuxchevaux.org
Fri Nov 10 02:16:30 UTC 2017
This is an automated email from the git hooks/post-receive script.
abe pushed a commit to branch master
in repository devscripts.
commit 0204b15c6adfc6c1f93aeb41117d56582782d672
Author: Axel Beckert <abe at deuxchevaux.org>
Date: Fri Nov 10 03:15:57 2017 +0100
Add ltnu (Long Time No Upload)
---
.gitignore | 2 ++
README | 4 +++
debian/changelog | 3 ++
debian/control | 3 ++
po4a/devscripts-po4a.conf | 2 ++
scripts/Makefile | 2 +-
scripts/ltnu.pod | 90 +++++++++++++++++++++++++++++++++++++++++++++++
scripts/ltnu.sh | 70 ++++++++++++++++++++++++++++++++++++
8 files changed, 175 insertions(+), 1 deletion(-)
diff --git a/.gitignore b/.gitignore
index ced0cd5..eba45fb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -83,6 +83,8 @@ scripts/grep-excuses
scripts/libvfork.o
scripts/libvfork.so.0
scripts/list-unreleased
+scripts/ltnu
+scripts/ltnu.1
scripts/manpage-alert
scripts/mass-bug
scripts/mass-bug.1
diff --git a/README b/README
index a76f7cb..0d754bb 100644
--- a/README
+++ b/README
@@ -193,6 +193,10 @@ And now, in mostly alphabetical order, the scripts:
- list-unreleased: searches for packages marked UNRELEASED in their
changelog
+- ltnu (Long Time No Upload): List all uploads of packages by the
+ given uploader or maintainer and display them ordered by the last
+ upload of that package, oldest uploads first.
+
- manpage-alert: locate binaries without corresponding manpages [man-db]
- mass-bug: mass-file bug reports [bsd-mailx | mailx]
diff --git a/debian/changelog b/debian/changelog
index d9e2d96..96c6cd0 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -9,6 +9,9 @@ devscripts (2.17.12) UNRELEASED; urgency=medium
* dget:
+ Support downloading packages through gopher://. Closes: #880649
+ [ Axel Beckert ]
+ * Add ltnu (Long Time No Upload).
+
-- Mattia Rizzolo <mattia at debian.org> Mon, 30 Oct 2017 07:48:10 +0100
devscripts (2.17.11) unstable; urgency=medium
diff --git a/debian/control b/debian/control
index 50d6ad9..2d36bfe 100644
--- a/debian/control
+++ b/debian/control
@@ -112,6 +112,7 @@ Suggests: adequate,
mozilla-devscripts,
mutt,
piuparts,
+ postgresql-client,
quilt,
ratt,
reprotest,
@@ -202,6 +203,8 @@ Description: scripts to make the life of a Debian Package maintainer easier
libyaml-syck-perl, wget, w3m]
- hardening-check: report the hardening characteristics of a set of binaries
- list-unreleased: search for unreleased packages
+ - ltnu: List all uploads of packages by the given uploader or maintainer and
+ display them ordered by the last upload [postgresql-client]
- manpage-alert: locate binaries without corresponding manpages [man-db]
- mass-bug: mass-file bug reports [bsd-mailx | mailx]
- mergechanges: merge .changes files from the same release but built
diff --git a/po4a/devscripts-po4a.conf b/po4a/devscripts-po4a.conf
index a58f82a..e4a89e2 100644
--- a/po4a/devscripts-po4a.conf
+++ b/po4a/devscripts-po4a.conf
@@ -92,6 +92,8 @@
$lang:$lang/hardening-check.$lang.pl add_$lang:?add_$lang/translator_pod.add
[type:man] ../scripts/list-unreleased.1 \
$lang:$lang/list-unreleased.$lang.1 add_$lang:?add_$lang/translator_man.add
+[type:pod] ../scripts/ltnu.pod \
+ $lang:$lang/ltnu.$lang.pod add_$lang:?add_$lang/translator_pod.add
[type:man] ../scripts/manpage-alert.1 \
$lang:$lang/manpage-alert.$lang.1 add_$lang:?add_$lang/translator_man.add
[type:pod] ../scripts/mass-bug.pl \
diff --git a/scripts/Makefile b/scripts/Makefile
index aa3bc30..e25f9e6 100644
--- a/scripts/Makefile
+++ b/scripts/Makefile
@@ -28,7 +28,7 @@ PKGNAMES:=wnpp-alert wnpp-check mk-build-deps rmadison mass-bug debsnap dd-list
# also update the list in setup.py
PYTHON3_SCRIPTS:=debdiff-apply sadt suspicious-source wrap-and-sort reproducible-check
-GEN_MAN1S += debrepro.1 devscripts.1 mk-origtargz.1 uscan.1 reproducible-check.1
+GEN_MAN1S += debrepro.1 devscripts.1 ltnu.1 mk-origtargz.1 uscan.1 reproducible-check.1
all: $(SCRIPTS) $(GEN_MAN1S) $(CWRAPPERS) $(COMPLETION)
diff --git a/scripts/ltnu.pod b/scripts/ltnu.pod
new file mode 100644
index 0000000..65ec702
--- /dev/null
+++ b/scripts/ltnu.pod
@@ -0,0 +1,90 @@
+=head1 NAME
+
+ltnu - lists packages of a maintainer ordered by last upload
+
+=head1 SYNOPSIS
+
+B<env> DEBEMAIL=I<maintainer> B<ltnu>
+
+B<ltnu> I<maintainer>
+
+B<ltnu> --help
+
+=head1 DESCRIPTION
+
+B<ltnu> (Long Time No Upload) queries the public mirror of the
+Ultimate Debian Database (udd-mirror.debian.net) for all uploads of
+packages by the given uploader or maintainer and displays them ordered
+by the last upload of that package to Debian Unstable, oldest uploads
+first.
+
+Its primary purpose is to check which of your own or your team's
+packages haven't been uploaded for a long time and likely need a
+packaging revamp. It's less suitable for MIA team purposes as it
+doesn't make a difference with regards to who actually uploaded a
+package.
+
+=head1 PARAMETERS
+
+The maintainer/uploader to query can be given either by setting
+C<$DEBEMAIL> as environment variable or as single commandline parameter.
+
+If a commandline parameter does not contain an C<@>, C<@debian.org> is
+appended, e.g. C<ltnu abe> queries for C<abe at debian.org>.
+
+Exceptions are some shortcuts for common, long e-mail addresses. So
+far implemented shortcuts:
+
+=over
+
+=item pkg-perl
+
+pkg-perl-maintainers at lists.alioth.debian.org
+
+=item pkg-zsh
+
+pkg-zsh-devel at lists.alioth.debian.org
+
+=back
+
+=head1 ENVIRONMENT
+
+The following environment variables are honoured:
+
+=over
+
+=item DEBEMAIL
+
+Used for querying if no parameter is given.
+
+=item PAGER
+
+Used by B<psql> as pager.
+
+=back
+
+=head1 EXAMPLE
+
+ $ ltnu pkg-zsh
+ source | ver | uploaded
+ -------------------------+--------------+------------------------
+ zgen | 0~20150919-3 | 2016-08-24 04:55:31+00
+ zplug | 2.4.1-1 | 2017-01-13 09:51:26+00
+ zsh-syntax-highlighting | 0.6.0-1 | 2017-08-30 09:06:26+00
+ zsh | 5.4.2-2 | 2017-11-02 20:56:55+00
+ (4 rows)
+
+=head1 DEPENDENCIES
+
+B<ltnu> uses the PostgreSQL client command B<psql> and hence needs
+Debian's B<postgresql-client> package to be installed.
+
+=head1 AUTHOR, COPYRIGHT, LICENSE
+
+Copyright 2017 Axel Beckert <L<abe at debian.org>>. Licensed under the GNU
+General Public License, version 2 or later.
+
+=head1 SEE ALSO
+
+L<https://udd-mirror.debian.net/>, L<https://udd.debian.org/>,
+L<https://wiki.debian.org/UltimateDebianDatabase>
diff --git a/scripts/ltnu.sh b/scripts/ltnu.sh
new file mode 100755
index 0000000..be5c505
--- /dev/null
+++ b/scripts/ltnu.sh
@@ -0,0 +1,70 @@
+#!/bin/sh
+
+# Copyright 2017 Axel Beckert <abe at debian.org>.
+# Licensed under the GNU GPL, version 2 or later.
+
+set -e
+
+if [ "${1}" = '-h' -o "${1}" = '--help' ]; then
+ echo "${0} (Long Time No Upload) queries the public mirror of the
+Ultimate Debian Database (UDD) for all uploads of packages by the
+given uploader or maintainer and displays them ordered by the last
+upload of that package, oldest uploads first.
+
+The maintainer/uploader to query can be given either by setting
+\$DEBEMAIL as environment variable or as single commandline parameter.
+
+If a commandline parameter does not contain an \"@\", \"@debian.org\"
+is appended, e.g. \"${0} abe\" queries for \"abe at debian.org\".
+
+Exceptions are some shortcuts for common, long e-mail addresses. So
+far implemented shortcuts:
+
+* pkg-perl = pkg-perl-maintainers at lists.alioth.debian.org
+* pkg-zsh = pkg-zsh-devel at lists.alioth.debian.org
+"
+ exit 0
+fi
+
+if [ ! -x /usr/bin/psql ]; then
+ echo "/usr/bin/psql not found or not executable" 1>&2
+ echo "${0} requires a PostgreSQL client (psql) to be installed." 1>&2
+ exit 2
+fi
+
+MAINT="${DEBEMAIL}"
+if [ -n "${1}" ]; then
+ if echo "${1}" | fgrep -q @; then
+ MAINT="${1}"
+ elif [ "${1}" = "pkg-perl" ]; then
+ MAINT="pkg-perl-maintainers at lists.alioth.debian.org"
+ elif [ "${1}" = "pkg-zsh" ]; then
+ MAINT="pkg-zsh-devel at lists.alioth.debian.org"
+ else
+ MAINT="${1}@debian.org"
+ fi
+fi
+
+if [ -z "${MAINT}" ]; then
+ echo "${0} requires either the environment variable \$DEBEMAIL to be set or a single parameter." 1>&2
+ exit 1;
+fi
+
+if [ -z "${PAGER}" -o "${PAGER}" = "less" ]; then
+ export PAGER="less -S"
+fi
+
+env PGPASSWORD=udd-mirror psql --host=udd-mirror.debian.net --user=udd-mirror udd --command="
+select source,
+ max(version) as ver,
+ max(date) as uploaded
+from upload_history
+where distribution='unstable' and
+ source in (select source
+ from sources
+ where ( maintainer_email='${MAINT}' or
+ uploaders like '%<${MAINT}>%' ) and
+ release='sid')
+group by source
+order by max(date) asc;
+"
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/collab-maint/devscripts.git
More information about the devscripts-devel
mailing list