Commit a88d96a4 authored by Andreas Tille's avatar Andreas Tille
Browse files

Script to seek outdated Debian Med packages (as its regularly runned by pkg R team)

parent 1fad8125
Loading
Loading
Loading
Loading
+41 −0
Original line number Diff line number Diff line
#!/bin/sh

OUTFILE=outdated_med-packages.txt

export LC_ALL=C.UTF-8

echo "Last-Update: `date -R`" > $OUTFILE
echo >> $OUTFILE

export PGPASSWORD="public-udd-mirror"
psql --host=public-udd-mirror.xvm.mit.edu --username=public-udd-mirror udd >> $OUTFILE <<EOT
SELECT source  AS "source                       ", version, upstream_version, 
       array_to_string(uploaders,',') AS "uploaders                      ",
        changed_by_name AS "Last uploader       ", date AS "Last uploaded" FROM (
  SELECT distinct u.source,
         regexp_replace(regexp_replace(regexp_replace(u.version, '^[0-9]:', ''), '-[0-9]+$', ''), '\+dfsg[0-9]*', '') AS version,
         upstream_version, status, up.uploaders, uh.changed_by_name, uh.date
    FROM upstream u 
    JOIN (SELECT source, package, release, maintainer_email, regexp_replace(version, '\+b[0-9]+$', '') AS version FROM packages)  p ON p.source=u.source -- make sure binNMU version will be stripped
    JOIN (SELECT DISTINCT array_agg(name) AS uploaders, source, version FROM uploaders WHERE release = 'sid' GROUP by source, version) up ON up.source=p.source AND up.version = p.version
    JOIN (SELECT source, changed_by_name, version, date, row_number FROM
             (SELECT source, changed_by_name, version, date, row_number() OVER (PARTITION BY source ORDER BY date DESC) FROM upload_history ) tmp
              WHERE row_number = 1) uh ON uh.source=p.source AND uh.version = p.version
    WHERE p.maintainer_email = 'debian-med-packaging@lists.alioth.debian.org'
      AND status NOT in ( 'up to date', 'only older package available')
      AND upstream_version is not null -- this is caused by missing or broken watch files - it would better to fix these instead
      AND p.release = 'sid' order by source
 ) tmp;
EOT

echo

psql --host=public-udd-mirror.xvm.mit.edu --username=public-udd-mirror udd >> $OUTFILE <<EOT
  SELECT b.source AS "source                       ", id, -- status,
         severity, title FROM bugs b
  JOIN (SELECT source, maintainer_email FROM (
          SELECT source, maintainer_email, version, row_number() OVER (PARTITION BY source ORDER BY version DESC) FROM sources
       ) tmp WHERE row_number = 1 ) s ON s.source = b.source
  WHERE maintainer_email = 'debian-med-packaging@lists.alioth.debian.org' AND status != 'done'
  ORDER BY b.source, id;
EOT