[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