Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package signing-party for openSUSE:Factory 
checked in at 2021-05-15 23:16:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/signing-party (Old)
 and      /work/SRC/openSUSE:Factory/.signing-party.new.2988 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "signing-party"

Sat May 15 23:16:16 2021 rev:6 rq:893285 version:2.11

Changes:
--------
--- /work/SRC/openSUSE:Factory/signing-party/signing-party.changes      
2019-06-17 10:34:52.833217994 +0200
+++ /work/SRC/openSUSE:Factory/.signing-party.new.2988/signing-party.changes    
2021-05-15 23:17:16.264482211 +0200
@@ -1,0 +2,6 @@
+Sat May 15 08:53:33 UTC 2021 - Andreas Stieger <andreas.stie...@gmx.de>
+
+- signing-party 2.11:
+  * fixes for other distributions only
+
+-------------------------------------------------------------------

Old:
----
  signing-party-2.10.tar.gz

New:
----
  signing-party-2.11.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ signing-party.spec ++++++
--- /var/tmp/diff_new_pack.2qvcTx/_old  2021-05-15 23:17:16.732480384 +0200
+++ /var/tmp/diff_new_pack.2qvcTx/_new  2021-05-15 23:17:16.732480384 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package signing-party
 #
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2021 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           signing-party
-Version:        2.10
+Version:        2.11
 Release:        0
 Summary:        GPG Tools
 License:        GPL-2.0-or-later
@@ -94,7 +94,7 @@
 rm -rf keyanalyze
 %endif
 
-make %{?_smp_mflags} V=1 CFLAGS="%{optflags}"
+%make_build CFLAGS="%{optflags}"
 
 %install
 
@@ -129,29 +129,7 @@
 %doc caff/README caff/README.gpg-agent caff/README.many-keys 
caff/README.v3-keys caff/caffrc.sample
 %doc gpgsigs/gpgsigs-lt2k5*.txt gpg-mailkeys/example.gpg-mailkeysrc
 %doc keylookup/NEWS
-%{_bindir}/caff
-%{_bindir}/gpg-key2ps
-%{_bindir}/gpg-mailkeys
-%{_bindir}/gpglist
-%{_bindir}/gpgsigs
-%{_bindir}/keyart
-%{_bindir}/keylookup
-%{_bindir}/pgp-clean
-%{_bindir}/pgp-fixkey
-%if 0%{?suse_version} > 1320
-%{_bindir}/signing-party-pgpring
-%endif
-%{_mandir}/man1/caff.1%{?ext_man}
-%{_mandir}/man1/gpg-key2ps.1%{?ext_man}
-%{_mandir}/man1/gpg-mailkeys.1%{?ext_man}
-%{_mandir}/man1/gpglist.1%{?ext_man}
-%{_mandir}/man1/gpgsigs.1%{?ext_man}
-%{_mandir}/man1/keyart.1%{?ext_man}
-%{_mandir}/man1/keylookup.1%{?ext_man}
-%{_mandir}/man1/pgp-clean.1%{?ext_man}
-%{_mandir}/man1/pgp-fixkey.1%{?ext_man}
-%if 0%{?suse_version} > 1320
-%{_mandir}/man1/signing-party-pgpring.1%{?ext_man}
-%endif
+%{_bindir}/*
+%{_mandir}/man1/*%{?ext_man}
 
 %changelog

++++++ signing-party-2.10.tar.gz -> signing-party-2.11.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/signing-party-2.10/debian/NEWS 
new/signing-party-2.11/debian/NEWS
--- old/signing-party-2.10/debian/NEWS  1970-01-01 01:00:00.000000000 +0100
+++ new/signing-party-2.11/debian/NEWS  2020-07-08 18:35:26.000000000 +0200
@@ -0,0 +1,29 @@
+signing-party (1.0-1) unstable; urgency=low
+
+  There are several new tools:
+  * gpgparticipants creates a list of party participants for the organiser.
+  * sig2dot and springgraph were imported from their formerly separate
+    packages.
+
+ -- Christoph Berg <m...@debian.org>  Wed, 12 Mar 2008 22:58:00 +0100
+
+signing-party (0.4.2-1) unstable; urgency=low
+
+  * New: gpglist -- show who signed which of your UIDs
+
+ -- Christoph Berg <c...@df7cb.de>  Mon,  8 Aug 2005 00:03:55 +0200
+
+signing-party (0.4.0-1) unstable; urgency=low
+
+  * Signing-party has now been merged with the (never released) pgp-tools
+    package. It now includes two new tools. The package will be extended
+    further in the near future.
+
+  * New: caff -- CA - fire and forget:
+    caff takes a list of keyids on the command line, fetches them from a
+    keyserver and calls GnuPG so that you can sign it. It then mails each
+    key to all its email addresses - only including the one UID that we
+    send to in each mail.
+  * New: gpgsigs -- annotates a list of GPG keys with already done signatures.
+
+ -- Thijs Kinkhorst <k...@squirrelmail.org>  Fri,  3 Jun 2005 11:18:36 +0200
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/signing-party-2.10/debian/NEWS.Debian 
new/signing-party-2.11/debian/NEWS.Debian
--- old/signing-party-2.10/debian/NEWS.Debian   2019-05-01 12:22:19.000000000 
+0200
+++ new/signing-party-2.11/debian/NEWS.Debian   1970-01-01 01:00:00.000000000 
+0100
@@ -1,29 +0,0 @@
-signing-party (1.0-1) unstable; urgency=low
-
-  There are several new tools:
-  * gpgparticipants creates a list of party participants for the organiser.
-  * sig2dot and springgraph were imported from their formerly separate
-    packages.
-
- -- Christoph Berg <m...@debian.org>  Wed, 12 Mar 2008 22:58:00 +0100
-
-signing-party (0.4.2-1) unstable; urgency=low
-
-  * New: gpglist -- show who signed which of your UIDs
-
- -- Christoph Berg <c...@df7cb.de>  Mon,  8 Aug 2005 00:03:55 +0200
-
-signing-party (0.4.0-1) unstable; urgency=low
-
-  * Signing-party has now been merged with the (never released) pgp-tools
-    package. It now includes two new tools. The package will be extended
-    further in the near future.
-
-  * New: caff -- CA - fire and forget:
-    caff takes a list of keyids on the command line, fetches them from a
-    keyserver and calls GnuPG so that you can sign it. It then mails each
-    key to all its email addresses - only including the one UID that we
-    send to in each mail.
-  * New: gpgsigs -- annotates a list of GPG keys with already done signatures.
-
- -- Thijs Kinkhorst <k...@squirrelmail.org>  Fri,  3 Jun 2005 11:18:36 +0200
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/signing-party-2.10/debian/changelog 
new/signing-party-2.11/debian/changelog
--- old/signing-party-2.10/debian/changelog     2019-05-01 12:22:19.000000000 
+0200
+++ new/signing-party-2.11/debian/changelog     2020-07-08 18:35:26.000000000 
+0200
@@ -1,10 +1,29 @@
-signing-party (2.10-1) unstable; urgency=high
+signing-party (2.11-1) UNRELEASED; urgency=medium
 
-  * gpg-key2ps: Security fix for CVE-2018-15599: unsafe shell call enabling
+  * d/control, d/install: Apply wrap-and-sort(1).
+  * d/control: Remove useless Build-Depends: python.
+  * d/control, d/rules: Replace dh_python2 with dh_python3.  This has AFAICT
+    no impact on the binary packages which have been ported to python3 in
+    2.8-1. (Closes: #938480.)
+  * Set Rules-Requires-Root: no.
+  * Trim trailing whitespace.
+  * Move source package lintian overrides to debian/source.
+  * Rename debian/NEWS.Debian to debian/NEWS.
+  * Update standards version to 4.5.0, no changes needed.
+  * Bump debhelper from 9 to 13.  Remove now useless Build-Depends:
+    autotools-dev.
+  * Set debhelper-compat version in Build-Depends.
+  * Use the dh sequencer in debian/rules.
+
+ -- Guilhem Moulin <guil...@debian.org>  Fri, 30 Aug 2019 12:14:38 +0200
+
+signing-party (2.10-2) unstable; urgency=high
+
+  * gpg-key2ps: Security fix for CVE-2019-11627: unsafe shell call enabling
     shell injection via a User ID.  Use Perl's (core) module Encode.pm instead
     of shelling out to `iconv`. (Closes: #928256.)
 
- -- Guilhem Moulin <guil...@debian.org>  Wed, 01 May 2019 12:21:59 +0200
+ -- Guilhem Moulin <guil...@debian.org>  Sun, 05 May 2019 15:13:54 +0200
 
 signing-party (2.9-1) unstable; urgency=medium
 
@@ -593,7 +612,7 @@
 
 signing-party (1.1.2-1) unstable; urgency=low
 
-  * gpgsigs: 
+  * gpgsigs:
     + Added patch from Roland Rosenfeld to support RIPEMD160 checksum.
       (Closes: #533747).
     + Updated man page to mention support for SHA256 and RIPEMD160 checksum.
@@ -633,7 +652,7 @@
     + Update caff's manpage to mention a keyid specified with -u requires to
       be listed in the configuration file through the keyid variable.
       Add a note in caffrc.sample about using the -u option to select which
-      keyid from the CONFIG{'keyid'} as to be used for signing. 
+      keyid from the CONFIG{'keyid'} as to be used for signing.
       (Closes: #482693)
   * keyanalyze/top50.pl: Fix the error message when a line from stdin does not
     match.
@@ -1044,4 +1063,3 @@
   * Initial Release (Closes: #117977).
 
  -- Simon Richter <s...@debian.org>  Fri,  2 Nov 2001 19:33:42 +0100
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/signing-party-2.10/debian/compat 
new/signing-party-2.11/debian/compat
--- old/signing-party-2.10/debian/compat        2019-05-01 12:22:19.000000000 
+0200
+++ new/signing-party-2.11/debian/compat        1970-01-01 01:00:00.000000000 
+0100
@@ -1 +0,0 @@
-9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/signing-party-2.10/debian/control 
new/signing-party-2.11/debian/control
--- old/signing-party-2.10/debian/control       2019-05-01 12:22:19.000000000 
+0200
+++ new/signing-party-2.11/debian/control       2020-07-08 18:35:26.000000000 
+0200
@@ -3,46 +3,47 @@
 Priority: optional
 Maintainer: Guilhem Moulin <guil...@debian.org>
 Uploaders: Simon Richter <s...@debian.org>
-Build-Depends: debhelper (>= 9), python, dh-python,
- autoconf, automake, autotools-dev,
- libmd-dev
-Standards-Version: 4.3.0
+Build-Depends: autoconf,
+               automake,
+               debhelper-compat (= 13),
+               dh-python,
+               libmd-dev,
+               python3
+Standards-Version: 4.5.0
 Vcs-Git: https://salsa.debian.org/signing-party-team/signing-party.git
 Vcs-Browser: https://salsa.debian.org/signing-party-team/signing-party
+Rules-Requires-Root: no
 
 Package: signing-party
 Architecture: any
-Depends:
- ${perl:Depends},
- ${python:Depends},
- ${misc:Depends},
- ${shlibs:Depends},
- gnupg,
- libclass-methodmaker-perl,
- libgnupg-interface-perl,
- libmailtools-perl,
- libmime-tools-perl,
- libnet-idn-encode-perl,
- libterm-readkey-perl,
- libtext-template-perl,
- qprint
-Recommends:
- default-mta | mail-transport-agent,
- dialog | whiptail,
- libgd-gd2-noxpm-perl | libgd-gd2-perl,
- libpaper-utils
-Suggests:
- fonts-noto-cjk,
- fonts-noto-mono,
- imagemagick | graphicsmagick-imagemagick-compat,
- mutt | neomutt,
- qrencode,
- texlive-font-utils,
- texlive-latex-extra,
- texlive-latex-recommended,
- texlive-xetex,
- wipe
-Provides: sig2dot, springgraph, keyanalyze
+Depends: gnupg,
+         libclass-methodmaker-perl,
+         libgnupg-interface-perl,
+         libmailtools-perl,
+         libmime-tools-perl,
+         libnet-idn-encode-perl,
+         libterm-readkey-perl,
+         libtext-template-perl,
+         qprint,
+         ${misc:Depends},
+         ${perl:Depends},
+         ${python3:Depends},
+         ${shlibs:Depends}
+Recommends: default-mta | mail-transport-agent,
+            dialog | whiptail,
+            libgd-gd2-noxpm-perl | libgd-gd2-perl,
+            libpaper-utils
+Suggests: fonts-noto-cjk,
+          fonts-noto-mono,
+          imagemagick | graphicsmagick-imagemagick-compat,
+          mutt | neomutt,
+          qrencode,
+          texlive-font-utils,
+          texlive-latex-extra,
+          texlive-latex-recommended,
+          texlive-xetex,
+          wipe
+Provides: keyanalyze, sig2dot, springgraph
 Description: Various OpenPGP related tools
  signing-party is a collection for all kinds of PGP/GnuPG related things,
  including tools for signing keys, keyring analysis, and party preparation.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/signing-party-2.10/debian/dirs 
new/signing-party-2.11/debian/dirs
--- old/signing-party-2.10/debian/dirs  2019-05-01 12:22:19.000000000 +0200
+++ new/signing-party-2.11/debian/dirs  1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-usr/bin
-usr/share/doc/signing-party
-usr/share/doc/signing-party/caff
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/signing-party-2.10/debian/docs 
new/signing-party-2.11/debian/docs
--- old/signing-party-2.10/debian/docs  2019-05-01 12:22:19.000000000 +0200
+++ new/signing-party-2.11/debian/docs  2020-07-08 18:35:26.000000000 +0200
@@ -1,4 +1,3 @@
-debian/NEWS.Debian
 debian/changelog.keylookup
 debian/changelog.sig2dot
 debian/changelog.springgraph
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/signing-party-2.10/debian/install 
new/signing-party-2.11/debian/install
--- old/signing-party-2.10/debian/install       2019-05-01 12:22:19.000000000 
+0200
+++ new/signing-party-2.11/debian/install       2020-07-08 18:35:26.000000000 
+0200
@@ -1,17 +1,18 @@
 caff/caff usr/bin
 caff/pgp-clean usr/bin
 caff/pgp-fixkey usr/bin
-gpglist/gpglist usr/bin
-gpg-key2ps/gpg-key2ps usr/bin
 gpg-key2latex/gpg-key2latex usr/bin
+gpg-key2ps/gpg-key2ps usr/bin
 gpg-mailkeys/gpg-mailkeys usr/bin
+gpgdir/gpgdir usr/bin
+gpglist/gpglist usr/bin
 gpgparticipants/gpgparticipants usr/bin
+gpgparticipants/gpgparticipants-filter usr/bin
 gpgparticipants/gpgparticipants-prefill usr/bin
-
+gpgwrap/bin/gpgwrap usr/bin
 keyanalyze/analyze.sh usr/share/doc/signing-party/examples/keyanalyze
 keyanalyze/scripts/*  usr/share/doc/signing-party/examples/keyanalyze/scripts
 keyanalyze/willy/*    usr/share/doc/signing-party/examples/keyanalyze/willy
-
-keyart/keyart usr/bin
-keyart/doc/examples/* usr/share/doc/signing-party/examples/keyart
 keyart/doc/druken-bishop.txt keyart/doc/party-worksheet keyart/README 
usr/share/doc/signing-party/keyart
+keyart/doc/examples/* usr/share/doc/signing-party/examples/keyart
+keyart/keyart usr/bin
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/signing-party-2.10/debian/manpages 
new/signing-party-2.11/debian/manpages
--- old/signing-party-2.10/debian/manpages      1970-01-01 01:00:00.000000000 
+0100
+++ new/signing-party-2.11/debian/manpages      2020-07-08 18:35:26.000000000 
+0200
@@ -0,0 +1,20 @@
+caff/caff.1
+caff/pgp-clean.1
+caff/pgp-fixkey.1
+gpg-key2latex/gpg-key2latex.1
+gpg-key2ps/gpg-key2ps.1
+gpg-mailkeys/gpg-mailkeys.1
+gpgdir/gpgdir.1
+gpglist/gpglist.1
+gpgparticipants/gpgparticipants-filter.1
+gpgparticipants/gpgparticipants-prefill.1
+gpgparticipants/gpgparticipants.1
+gpgsigs/gpgsigs.1
+gpgwrap/doc/gpgwrap.1
+keyanalyze/keyanalyze.1
+keyanalyze/pgpring/pgpring.1
+keyanalyze/process_keys.1
+keyart/doc/keyart.1
+keylookup/keylookup.1
+sig2dot/sig2dot.1
+springgraph/springgraph.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/signing-party-2.10/debian/rules 
new/signing-party-2.11/debian/rules
--- old/signing-party-2.10/debian/rules 2019-05-01 12:22:19.000000000 +0200
+++ new/signing-party-2.11/debian/rules 2020-07-08 18:35:26.000000000 +0200
@@ -1,87 +1,16 @@
 #!/usr/bin/make -f
 
 export DEB_BUILD_MAINT_OPTIONS := hardening=+bindnow,+pie
-DPKG_EXPORT_BUILDFLAGS = 1
--include /usr/share/dpkg/buildflags.mk
 
-INSTALL             = install
-INSTALL_PROGRAM     = $(INSTALL)
-INSTALL_DATA        = $(INSTALL) -m 644
+NAME = signing-party
+datarootdir = $(CURDIR)/debian/$(NAME)/usr/share
+docdir = $(datarootdir)/doc/$(NAME)
 
-GPGDIR_DIR          = gpgdir
-GPGDIR_PROG         = gpgdir
+%:
+       dh $@ --with python3
 
-GPGWRAP_DIR         = gpgwrap
-GPGWRAP_PROG        = bin/gpgwrap
-
-DESTDIR             = $(CURDIR)/debian/signing-party
-DESTDIR_BIN         = $(DESTDIR)/usr/bin
-DESTDIR_DOC         = $(DESTDIR)/usr/share/doc/signing-party
-
-configure: configure-stamp
-configure-stamp:
-       dh_testdir
-       touch $@
-
-build: build-arch build-indep
-build-arch: build-stamp
-build-indep: build-stamp
-build-stamp: configure-stamp
-       dh_testdir
-       dh_update_autotools_config
-       $(MAKE)
-       touch $@
-
-clean:
-       dh_testdir
-       dh_testroot
-       $(MAKE) clean
-       rm -f build-stamp configure-stamp
-       dh_clean
-
-install: build
-       dh_testdir
-       dh_testroot
-       dh_prep
-       dh_installdirs
-       $(MAKE) install DESTDIR=$(DESTDIR)
-       dh_install
-       dh_installman */*.1 */*/*.1
-       $(INSTALL_DATA) caff/README \
-                       caff/README.gpg-agent \
-                       caff/README.many-keys \
-                       caff/README.v3-keys \
-                       caff/caffrc.sample \
-                       $(DESTDIR_DOC)/caff
-       
-       $(INSTALL_PROGRAM) $(GPGDIR_DIR)/$(GPGDIR_PROG) $(DESTDIR_BIN)          
-       $(INSTALL_DATA) $(GPGDIR_DIR)/ChangeLog $(DESTDIR_DOC)/changelog.gpgdir
-       
-       $(INSTALL_PROGRAM) $(GPGWRAP_DIR)/$(GPGWRAP_PROG) $(DESTDIR_BIN)        
        
-       $(INSTALL_DATA) $(GPGWRAP_DIR)/NEWS $(DESTDIR_DOC)/changelog.gpgwrap
-       
-       dh_lintian
-
-binary-indep: build install
-binary-arch: build install
-       dh_testdir
-       dh_testroot
+override_dh_installdocs:
        dh_installdocs
-       dh_installmenu
-       dh_installcron
-       dh_installinfo
-       dh_installchangelogs
-       dh_perl
-       dh_strip
-       dh_compress
-       dh_fixperms
-       dh_installdeb
-       dh_shlibdeps
-       dh_python2
-       dh_gencontrol
-       dh_md5sums
-       dh_builddeb
-
-binary: binary-indep binary-arch
-
-.PHONY: build clean binary-indep binary-arch binary install configure
+       install -Dt $(docdir)/caff caff/README caff/README.* caff/caffrc.sample
+       install -T gpgdir/ChangeLog $(docdir)/changelog.gpgdir
+       install -T gpgwrap/NEWS $(docdir)/changelog.gpgwrap
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/signing-party-2.10/debian/source/lintian-overrides 
new/signing-party-2.11/debian/source/lintian-overrides
--- old/signing-party-2.10/debian/source/lintian-overrides      1970-01-01 
01:00:00.000000000 +0100
+++ new/signing-party-2.11/debian/source/lintian-overrides      2020-07-08 
18:35:26.000000000 +0200
@@ -0,0 +1,2 @@
+# we're upstream
+debian-watch-file-is-missing
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/signing-party-2.10/debian/source.lintian-overrides 
new/signing-party-2.11/debian/source.lintian-overrides
--- old/signing-party-2.10/debian/source.lintian-overrides      2019-05-01 
12:22:19.000000000 +0200
+++ new/signing-party-2.11/debian/source.lintian-overrides      1970-01-01 
01:00:00.000000000 +0100
@@ -1,2 +0,0 @@
-# we're upstream
-debian-watch-file-is-missing
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/signing-party-2.10/gpgparticipants/gpgparticipants-filter 
new/signing-party-2.11/gpgparticipants/gpgparticipants-filter
--- old/signing-party-2.10/gpgparticipants/gpgparticipants-filter       
1970-01-01 01:00:00.000000000 +0100
+++ new/signing-party-2.11/gpgparticipants/gpgparticipants-filter       
2020-07-08 18:35:26.000000000 +0200
@@ -0,0 +1,171 @@
+#!/usr/bin/python3
+"""
+This tool filters a list of key ids from your gpg keyring as input to 
gpgparticipants.
+
+It sorts the alphabetically list by the first uid of each key. Per default it 
skips over revoked and expired keys.
+The output can be piped into gpgparticipants or stored in a file.
+"""
+
+__version__ = "1.0"
+__author__ = "Max Harmathy"
+__email__ = "max.harma...@web.de"
+__copyright__ = "Copyright 2019, Max Harmathy"
+__license__ = "MIT"
+
+# Permission is hereby granted, free of charge, to any person
+# obtaining a copy of this software and associated documentation
+# files (the "Software"), to deal in the Software without
+# restriction, including without limitation the rights to use,
+# copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following
+# conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+# OTHER DEALINGS IN THE SOFTWARE.
+
+import argparse
+import subprocess
+import sys
+
+
+class RawDataSet:
+    """
+    Hold raw output of gpg for one key.
+    """
+
+    def __init__(self, data):
+        """
+        :param data: list of lines of raw output of gpg --with-colons
+        """
+        self.data = data
+
+    def has_line_with(self, prefix):
+        return any(line.startswith(prefix.encode()) for line in self.data)
+
+    def is_key_set(self):
+        """sanity check for a data set of a key"""
+        return self.has_line_with("pub") and self.has_line_with("fpr") and 
self.has_line_with("uid")
+
+    def data_field_from_lines(self, field_index, line_prefix):
+        """Select all lines which start with line_prefix and return the 
columns denoted by field_index."""
+        return [line.split(b':')[field_index].decode() for line in self.data 
if line.startswith(line_prefix)]
+
+
+class KeyDataSet:
+    """
+    Hold processed key data.
+    """
+
+    def __init__(self, key_id, uids, valid_flag):
+        self.key_id = key_id
+        self.uids = uids
+        self.valid_flag = valid_flag
+
+    def __repr__(self):
+        return self.key_id
+
+    def is_valid(self):
+        """check that the key isn't revoked or expired"""
+        return self.valid_flag not in ['e', 'r']
+
+
+def filter_to_gpg(filter_string, gpg_bin, set_homedir, homedir):
+    """
+    Call gpg and return output.
+    """
+
+    command = [
+        gpg_bin,
+        "--with-colons",
+        "--fingerprint",
+    ]
+
+    if set_homedir:
+        command.append("--homedir")
+        command.append(homedir)
+
+    command.append(filter_string)
+
+    with subprocess.Popen(command, stdout=subprocess.PIPE) as process:
+        return process.stdout.readlines()
+
+
+def slpit_raw_key_data(gpg_output):
+    """
+    Split the whole output of gpg into fragments, each belonging to one key.
+    """
+    acc = []
+    for line in gpg_output:
+        if line.startswith(b'pub'):
+            yield RawDataSet(acc)
+            acc = []
+        acc.append(line)
+    yield RawDataSet(acc)
+
+
+def key_data_from(raw_data_set):
+    """process a raw data set into a key data set"""
+    return KeyDataSet(
+        raw_data_set.data_field_from_lines(9, b'fpr')[0],
+        raw_data_set.data_field_from_lines(9, b'uid'),
+        raw_data_set.data_field_from_lines(9, b'pub')[0],
+    )
+
+
+def key_data_sets_from(gpg_output):
+    for raw_data_set in slpit_raw_key_data(gpg_output):
+        if raw_data_set.is_key_set():
+            yield key_data_from(raw_data_set)
+
+
+def sorted_by_name(key_list):
+    return sorted(key_list, key=lambda key_data_set: key_data_set.uids[0])
+
+
+if __name__ == "__main__":
+    parser = argparse.ArgumentParser(description=__doc__)
+
+    parser.add_argument('-o', '--output', metavar="FILE", default=sys.stdout, 
type=argparse.FileType('w'),
+                        help='specifies the file where the output should be 
written to (per default writes to stdout)'
+                        )
+    parser.add_argument('-b', '--gpg-binary', metavar="GPG_BIN", default="gpg",
+                        help='custom path to gpg (default: "gpg")'
+                        )
+    parser.add_argument('-d', '--homedir', metavar="GPG_HOME",
+                        help='custom homedir for gpg (see --homedir in gpg 
manual)'
+                        )
+    parser.add_argument('-a', '--all-keys', action='store_true',
+                        help='show also revoked and expired keys'
+                        )
+    parser.add_argument('--version', action='version',
+                        help='output version information and exit',
+                        version="%(prog)s 
{version}".format(version=__version__)
+                        )
+    parser.add_argument('filter', type=str, nargs='+', metavar="FILTER",
+                        help='input query, which will be passed to gpg (see 
gpg manual)')
+
+    args = parser.parse_args()
+    key_data = []
+    for input_string in args.filter:
+        gpg_output = filter_to_gpg(
+            filter_string=input_string,
+            gpg_bin=args.gpg_binary,
+            set_homedir=args.homedir is not None,
+            homedir=args.homedir
+        )
+        key_data += key_data_sets_from(gpg_output)
+
+    for key in sorted_by_name(key_data):
+        if key.is_valid() or args.all_keys:
+            print(key, file=args.output)
+    args.output.close()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/signing-party-2.10/gpgparticipants/gpgparticipants-filter.1 
new/signing-party-2.11/gpgparticipants/gpgparticipants-filter.1
--- old/signing-party-2.10/gpgparticipants/gpgparticipants-filter.1     
1970-01-01 01:00:00.000000000 +0100
+++ new/signing-party-2.11/gpgparticipants/gpgparticipants-filter.1     
2020-07-08 18:35:26.000000000 +0200
@@ -0,0 +1,54 @@
+.TH GPGPARTICIPANTS-FILTER 1 "April, 2019"
+.SH NAME
+gpgparticipants-filter \- filters a list of key ids as input to gpgparticipants
+.SH SYNOPSIS
+.B gpgparticipants-filter
+[\-h]
+[\-o FILE]
+[\-b GPG_BIN]
+[\-d GPG_HOME]
+[\-a]
+[\-\-version]
+FILTER [FILTER ...]
+.SH DESCRIPTION
+This tool filters a list of key ids from your gpg keyring as input to
+gpgparticipants. It sorts the alphabetically list by the first uid of each
+key. Per default it skips over revoked and expired keys. The output can be
+piped into gpgparticipants or stored in a file.
+
+.SH OPTIONS
+
+.SS "positional arguments:"
+
+.IP FILTER
+input query, which will be passed to gpg
+
+.SS "optional arguments:"
+
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+show this help message and exit
+
+.TP
+\fB\-o\fR FILE, \fB\-\-output\fR FILE
+specifies the file where the output should be written
+to (per default writes to stdout)
+
+.TP
+\fB\-b\fR GPG_BIN, \fB\-\-gpg\-binary\fR GPG_BIN
+custom path to gpg (default: "gpg")
+
+.TP
+\fB\-d\fR GPG_HOME, \fB\-\-homedir\fR GPG_HOME
+custom homedir for gpg (see \fB\-\-homedir\fR of gpg)
+
+.TP
+\fB\-a\fR, \fB\-\-all\-keys\fR
+show also revoked and expired keys
+
+.TP
+\fB\-\-version\fR
+output version information and exit
+
+.SH SEE ALSO
+.BR gpgparticipants (1), gpg (1)
\ No newline at end of file

Reply via email to