From a5d7db3b2c6171ea9e76b84155d2dfb66c243e5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sl=C3=A1vek=20Banko?= Date: Fri, 28 Oct 2022 01:50:52 +0200 Subject: [PATCH] pinentry-tqt: updated based on upstream version 1.2.1. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Slávek Banko --- .../pinentry-tqt/pinentry-tqt-1.1.0/VERSION | 1 - .../pinentry-tqt-1.1.0/acinclude.m4 | 117 - .../pinentry-tqt-1.1.0/build-aux/config.guess | 1456 ---------- .../pinentry-tqt-1.1.0/build-aux/config.sub | 1823 ------------- ...0001-avoid-self-describing-as-a-beta.patch | 49 - .../pinentry-tqt-1.1.0/debian/patches/series | 1 - .../pinentry-tqt-1.1.0/debian/tests/control | 2 - .../pinentry-tqt-1.1.0/doc/stamp-vti | 4 - .../pinentry-tqt-1.1.0/doc/version.texi | 4 - .../pinentry-tqt-1.1.0/m4/gpg-error.m4 | 121 - .../pinentry-tqt-1.1.0/m4/iconv.m4 | 103 - .../AUTHORS | 6 +- .../COPYING | 0 .../ChangeLog | 1129 ++++++++ .../ChangeLog-old | 0 .../INSTALL | 0 .../Makefile.am | 29 +- .../Makefile.in | 161 +- .../NEWS | 66 + .../README | 3 + .../README.GIT | 0 .../THANKS | 0 .../TODO | 0 .../pinentry-tqt/pinentry-tqt-1.2.1/VERSION | 1 + .../pinentry-tqt-1.2.1/acinclude.m4 | 109 + .../aclocal.m4 | 245 +- .../autogen.rc | 2 - .../autogen.sh | 87 +- .../build-aux/compile | 0 .../pinentry-tqt-1.2.1/build-aux/config.guess | 1754 ++++++++++++ .../build-aux/config.rpath | 18 +- .../pinentry-tqt-1.2.1/build-aux/config.sub | 1890 +++++++++++++ .../build-aux/depcomp | 0 .../build-aux/git-log-fix | 0 .../build-aux/git-log-footer | 0 .../build-aux/gitlog-to-changelog | 0 .../build-aux/install-sh | 0 .../build-aux/mdate-sh | 0 .../build-aux/missing | 0 .../build-aux/texinfo.tex | 0 .../config.h.in | 40 +- .../configure | 2424 ++++++++++++----- .../configure.ac | 245 +- .../curses/Makefile.am | 2 +- .../curses/Makefile.in | 78 +- .../curses/pinentry-curses.c | 0 .../debian/README.Debian | 0 .../debian/changelog | 50 +- .../debian/clean | 0 .../debian/compat | 0 .../debian/control | 2 +- .../debian/copyright | 4 +- .../debian/gbp.conf | 2 +- .../debian/not-installed | 0 ...0001-avoid-self-describing-as-a-beta.patch | 51 + ...put-grabbing-fails-try-again-over-0..patch | 62 + .../pinentry-tqt-1.2.1/debian/patches/series | 2 + .../debian/pinentry-tqt.1 | 0 .../debian/pinentry-tqt.install | 0 .../debian/pinentry-tqt.manpages | 0 .../debian/pinentry-tqt.postinst | 0 .../debian/pinentry-tqt.prerm | 0 .../debian/rules | 9 +- .../debian/source/format | 0 .../debian/source/options | 0 .../pinentry-tqt-1.2.1/debian/tests/control | 4 + .../debian/tests/simple-tty | 0 .../debian/upstream/signing-key.asc | 103 + .../debian/watch | 0 .../depcomp | 0 .../doc/HACKING | 2 +- .../doc/Makefile.am | 0 .../doc/Makefile.in | 74 +- .../doc/gpl.texi | 0 .../doc/mdate-sh | 0 .../doc/pinentry.info | 139 +- .../doc/pinentry.texi | 150 +- .../pinentry-tqt-1.2.1/doc/stamp-vti | 4 + .../doc/texinfo.tex | 0 .../pinentry-tqt-1.2.1/doc/version.texi | 4 + .../pinentry-tqt-1.2.1/efl/Makefile.am | 38 + .../pinentry-tqt-1.2.1/efl/Makefile.in | 690 +++++ .../pinentry-tqt-1.2.1/efl/pinentry-efl.c | 621 +++++ .../emacs/Makefile.am | 2 +- .../emacs/Makefile.in | 78 +- .../emacs/pinentry-emacs.c | 4 +- .../fltk/Makefile.am | 2 +- .../fltk/Makefile.in | 92 +- .../fltk/encrypt.xpm | 0 .../fltk/icon.xpm | 0 .../fltk/main.cxx | 48 +- .../fltk/passwindow.cxx | 0 .../fltk/passwindow.h | 0 .../fltk/pinwindow.cxx | 0 .../fltk/pinwindow.h | 0 .../fltk/qualitypasswindow.cxx | 0 .../fltk/qualitypasswindow.h | 0 .../gnome3/Makefile.am | 2 +- .../gnome3/Makefile.in | 79 +- .../gnome3/pinentry-gnome3.c | 7 +- .../gtk+-2/Makefile.am | 2 +- .../gtk+-2/Makefile.in | 79 +- .../gtk+-2/pinentry-gtk-2.c | 41 +- .../install-sh | 0 .../m4/ChangeLog | 0 .../m4/Makefile.am | 0 .../m4/Makefile.in | 55 +- .../m4/curses.m4 | 18 +- .../m4/glib.m4 | 0 .../pinentry-tqt-1.2.1/m4/gpg-error.m4 | 208 ++ .../m4/gtk.m4 | 0 .../pinentry-tqt-1.2.1/m4/iconv.m4 | 288 ++ .../m4/libassuan.m4 | 59 +- .../m4/pkg.m4 | 0 .../m4/qt.m4 | 74 +- .../pinentry-tqt/pinentry-tqt-1.2.1/m4/qt4.m4 | 58 + .../missing | 0 .../mkinstalldirs | 0 .../pinentry/Makefile.am | 0 .../pinentry/Makefile.in | 115 +- .../pinentry/argparse.c | 0 .../pinentry/argparse.h | 0 .../pinentry/password-cache.c | 0 .../pinentry/password-cache.h | 0 .../pinentry/pinentry-curses.c | 258 +- .../pinentry/pinentry-curses.h | 0 .../pinentry/pinentry-emacs.c | 18 +- .../pinentry/pinentry-emacs.h | 3 + .../pinentry/pinentry.c | 517 ++-- .../pinentry/pinentry.h | 71 +- .../pinentry-tqt-1.2.1/qt/Makefile.am | 75 + .../pinentry-tqt-1.2.1/qt/Makefile.in | 902 ++++++ .../pinentry-tqt-1.2.1/qt/accessibility.cpp | 70 + .../pinentry-tqt-1.2.1/qt/accessibility.h | 45 + .../pinentry-tqt-1.2.1/qt/capslock.cpp | 53 + .../pinentry-tqt-1.2.1/qt/capslock.h | 52 + .../pinentry-tqt-1.2.1/qt/capslock_p.h | 61 + .../pinentry-tqt-1.2.1/qt/capslock_unix.cpp | 136 + .../pinentry-tqt-1.2.1/qt/capslock_win.cpp | 28 + .../pinentry-tqt-1.2.1/qt/icons/Makefile.am | 26 + .../pinentry-tqt-1.2.1/qt/icons/Makefile.in | 503 ++++ .../qt/icons/data-error.svg | 9 + .../qt/icons}/document-encrypt.png | Bin .../pinentry-tqt-1.2.1/qt/icons/hint.svg | 13 + .../qt/icons/password-generate.svg | 13 + .../qt/icons/visibility.svg | 21 + .../pinentry-tqt-1.2.1/qt/main.cpp | 429 +++ .../pinentry-tqt-1.2.1/qt/pinentry_debug.cpp | 31 + .../pinentry-tqt-1.2.1/qt/pinentry_debug.h | 28 + .../pinentry-tqt-1.2.1/qt/pinentryconfirm.cpp | 145 + .../pinentry-tqt-1.2.1/qt/pinentryconfirm.h | 64 + .../pinentry-tqt-1.2.1/qt/pinentrydialog.cpp | 793 ++++++ .../pinentry-tqt-1.2.1/qt/pinentrydialog.h | 181 ++ .../pinentry-tqt-1.2.1/qt/pinentryrc.qrc | 10 + .../pinentry-tqt-1.2.1/qt/pinlineedit.cpp | 232 ++ .../pinentry-tqt-1.2.1/qt/pinlineedit.h | 63 + .../pinentry-tqt-1.2.1/qt/qti18n.cpp | 93 + .../pinentry-tqt/pinentry-tqt-1.2.1/qt/util.h | 40 + .../qt => pinentry-tqt-1.2.1/qt4}/Makefile.am | 26 +- .../qt => pinentry-tqt-1.2.1/qt4}/Makefile.in | 156 +- .../qt4/document-encrypt.png | Bin 0 -> 1835 bytes .../qt => pinentry-tqt-1.2.1/qt4}/main.cpp | 99 +- .../qt4}/pinentry.qrc | 0 .../qt4}/pinentryconfirm.cpp | 0 .../qt4}/pinentryconfirm.h | 0 .../qt4}/pinentrydialog.cpp | 165 +- .../qt4}/pinentrydialog.h | 15 +- .../pinentry-tqt-1.2.1/qt4/pinlineedit.cpp | 36 + .../pinentry-tqt-1.2.1/qt4/pinlineedit.h | 38 + .../qt4}/qrc_pinentry.cpp | 0 .../secmem/Makefile.am | 0 .../secmem/Makefile.in | 100 +- .../secmem/memory.h | 0 .../secmem/secmem++.h | 0 .../secmem/secmem-util.h | 0 .../secmem/secmem.c | 48 +- .../secmem/util.c | 0 .../secmem/util.h | 17 +- .../tqt/Makefile.am | 4 +- .../tqt/Makefile.in | 106 +- .../tqt/main.cpp | 0 .../tqt/pinentrydialog.cpp | 16 +- .../tqt/pinentrydialog.h | 4 +- .../tqt/secqinternal.cpp | 0 .../tqt/secqinternal_p.h | 0 .../tqt/secqlineedit.cpp | 2 + .../tqt/secqlineedit.h | 1 + .../tqt/secqstring.cpp | 0 .../tqt/secqstring.h | 0 .../tty/Makefile.am | 2 +- .../tty/Makefile.in | 78 +- .../tty/pinentry-tty.c | 186 +- .../w32/Makefile.am | 0 .../w32/Makefile.in | 74 +- .../w32/logo-128.bmp | Bin .../w32/logo-32.bmp | Bin .../w32/logo-48.bmp | Bin .../w32/logo-64.bmp | Bin .../w32/logo-96.bmp | Bin .../w32/main.c | 1 - .../w32/pinentry-w32.rc | 0 .../w32/resource.h | 0 .../pinentry-tqt_1.1.0.orig.tar.bz2 | Bin 467702 -> 0 bytes .../pinentry-tqt_1.2.1.orig.tar.bz2 | Bin 0 -> 547698 bytes .../pinentry-tqt_1.2.1.orig.tar.bz2.asc | 9 + 205 files changed, 15774 insertions(+), 5684 deletions(-) delete mode 100644 debian/pinentry-tqt/pinentry-tqt-1.1.0/VERSION delete mode 100644 debian/pinentry-tqt/pinentry-tqt-1.1.0/acinclude.m4 delete mode 100755 debian/pinentry-tqt/pinentry-tqt-1.1.0/build-aux/config.guess delete mode 100755 debian/pinentry-tqt/pinentry-tqt-1.1.0/build-aux/config.sub delete mode 100644 debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/patches/0001-avoid-self-describing-as-a-beta.patch delete mode 100644 debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/patches/series delete mode 100644 debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/tests/control delete mode 100644 debian/pinentry-tqt/pinentry-tqt-1.1.0/doc/stamp-vti delete mode 100644 debian/pinentry-tqt/pinentry-tqt-1.1.0/doc/version.texi delete mode 100644 debian/pinentry-tqt/pinentry-tqt-1.1.0/m4/gpg-error.m4 delete mode 100644 debian/pinentry-tqt/pinentry-tqt-1.1.0/m4/iconv.m4 rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/AUTHORS (92%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/COPYING (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/ChangeLog (61%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/ChangeLog-old (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/INSTALL (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/Makefile.am (88%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/Makefile.in (87%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/NEWS (84%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/README (95%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/README.GIT (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/THANKS (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/TODO (100%) create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/VERSION create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/acinclude.m4 rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/aclocal.m4 (93%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/autogen.rc (85%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/autogen.sh (83%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/build-aux/compile (100%) create mode 100755 debian/pinentry-tqt/pinentry-tqt-1.2.1/build-aux/config.guess rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/build-aux/config.rpath (98%) create mode 100755 debian/pinentry-tqt/pinentry-tqt-1.2.1/build-aux/config.sub rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/build-aux/depcomp (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/build-aux/git-log-fix (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/build-aux/git-log-footer (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/build-aux/gitlog-to-changelog (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/build-aux/install-sh (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/build-aux/mdate-sh (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/build-aux/missing (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/build-aux/texinfo.tex (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/config.h.in (87%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/configure (88%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/configure.ac (76%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/curses/Makefile.am (93%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/curses/Makefile.in (91%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/curses/pinentry-curses.c (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/debian/README.Debian (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/debian/changelog (89%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/debian/clean (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/debian/compat (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/debian/control (98%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/debian/copyright (98%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/debian/gbp.conf (91%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/debian/not-installed (100%) create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/patches/0001-avoid-self-describing-as-a-beta.patch create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/patches/0002-gtk2-When-X11-input-grabbing-fails-try-again-over-0..patch create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/patches/series rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/debian/pinentry-tqt.1 (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/debian/pinentry-tqt.install (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/debian/pinentry-tqt.manpages (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/debian/pinentry-tqt.postinst (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/debian/pinentry-tqt.prerm (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/debian/rules (82%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/debian/source/format (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/debian/source/options (100%) create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/tests/control rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/debian/tests/simple-tty (100%) create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/upstream/signing-key.asc rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/debian/watch (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/depcomp (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/doc/HACKING (96%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/doc/Makefile.am (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/doc/Makefile.in (93%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/doc/gpl.texi (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/doc/mdate-sh (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/doc/pinentry.info (90%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/doc/pinentry.texi (84%) create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/doc/stamp-vti rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/doc/texinfo.tex (100%) create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/doc/version.texi create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/efl/Makefile.am create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/efl/Makefile.in create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/efl/pinentry-efl.c rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/emacs/Makefile.am (95%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/emacs/Makefile.in (91%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/emacs/pinentry-emacs.c (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/fltk/Makefile.am (93%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/fltk/Makefile.in (90%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/fltk/encrypt.xpm (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/fltk/icon.xpm (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/fltk/main.cxx (86%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/fltk/passwindow.cxx (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/fltk/passwindow.h (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/fltk/pinwindow.cxx (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/fltk/pinwindow.h (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/fltk/qualitypasswindow.cxx (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/fltk/qualitypasswindow.h (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/gnome3/Makefile.am (95%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/gnome3/Makefile.in (91%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/gnome3/pinentry-gnome3.c (98%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/gtk+-2/Makefile.am (96%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/gtk+-2/Makefile.in (91%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/gtk+-2/pinentry-gtk-2.c (97%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/install-sh (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/m4/ChangeLog (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/m4/Makefile.am (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/m4/Makefile.in (90%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/m4/curses.m4 (90%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/m4/glib.m4 (100%) create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/m4/gpg-error.m4 rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/m4/gtk.m4 (100%) create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/m4/iconv.m4 rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/m4/libassuan.m4 (75%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/m4/pkg.m4 (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/m4/qt.m4 (61%) create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/m4/qt4.m4 rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/missing (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/mkinstalldirs (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/pinentry/Makefile.am (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/pinentry/Makefile.in (87%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/pinentry/argparse.c (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/pinentry/argparse.h (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/pinentry/password-cache.c (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/pinentry/password-cache.h (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/pinentry/pinentry-curses.c (80%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/pinentry/pinentry-curses.h (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/pinentry/pinentry-emacs.c (97%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/pinentry/pinentry-emacs.h (93%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/pinentry/pinentry.c (82%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/pinentry/pinentry.h (80%) create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/Makefile.am create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/Makefile.in create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/accessibility.cpp create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/accessibility.h create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/capslock.cpp create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/capslock.h create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/capslock_p.h create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/capslock_unix.cpp create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/capslock_win.cpp create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/icons/Makefile.am create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/icons/Makefile.in create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/icons/data-error.svg rename debian/pinentry-tqt/{pinentry-tqt-1.1.0/qt => pinentry-tqt-1.2.1/qt/icons}/document-encrypt.png (100%) create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/icons/hint.svg create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/icons/password-generate.svg create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/icons/visibility.svg create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/main.cpp create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinentry_debug.cpp create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinentry_debug.h create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinentryconfirm.cpp create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinentryconfirm.h create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinentrydialog.cpp create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinentrydialog.h create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinentryrc.qrc create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinlineedit.cpp create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinlineedit.h create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/qti18n.cpp create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/util.h rename debian/pinentry-tqt/{pinentry-tqt-1.1.0/qt => pinentry-tqt-1.2.1/qt4}/Makefile.am (70%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0/qt => pinentry-tqt-1.2.1/qt4}/Makefile.in (83%) create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/qt4/document-encrypt.png rename debian/pinentry-tqt/{pinentry-tqt-1.1.0/qt => pinentry-tqt-1.2.1/qt4}/main.cpp (82%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0/qt => pinentry-tqt-1.2.1/qt4}/pinentry.qrc (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0/qt => pinentry-tqt-1.2.1/qt4}/pinentryconfirm.cpp (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0/qt => pinentry-tqt-1.2.1/qt4}/pinentryconfirm.h (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0/qt => pinentry-tqt-1.2.1/qt4}/pinentrydialog.cpp (79%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0/qt => pinentry-tqt-1.2.1/qt4}/pinentrydialog.h (91%) create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/qt4/pinlineedit.cpp create mode 100644 debian/pinentry-tqt/pinentry-tqt-1.2.1/qt4/pinlineedit.h rename debian/pinentry-tqt/{pinentry-tqt-1.1.0/qt => pinentry-tqt-1.2.1/qt4}/qrc_pinentry.cpp (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/secmem/Makefile.am (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/secmem/Makefile.in (87%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/secmem/memory.h (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/secmem/secmem++.h (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/secmem/secmem-util.h (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/secmem/secmem.c (91%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/secmem/util.c (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/secmem/util.h (86%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/tqt/Makefile.am (95%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/tqt/Makefile.in (89%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/tqt/main.cpp (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/tqt/pinentrydialog.cpp (94%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/tqt/pinentrydialog.h (96%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/tqt/secqinternal.cpp (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/tqt/secqinternal_p.h (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/tqt/secqlineedit.cpp (99%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/tqt/secqlineedit.h (99%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/tqt/secqstring.cpp (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/tqt/secqstring.h (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/tty/Makefile.am (96%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/tty/Makefile.in (91%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/tty/pinentry-tty.c (79%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/w32/Makefile.am (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/w32/Makefile.in (92%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/w32/logo-128.bmp (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/w32/logo-32.bmp (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/w32/logo-48.bmp (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/w32/logo-64.bmp (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/w32/logo-96.bmp (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/w32/main.c (99%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/w32/pinentry-w32.rc (100%) rename debian/pinentry-tqt/{pinentry-tqt-1.1.0 => pinentry-tqt-1.2.1}/w32/resource.h (100%) delete mode 100644 debian/pinentry-tqt/pinentry-tqt_1.1.0.orig.tar.bz2 create mode 100644 debian/pinentry-tqt/pinentry-tqt_1.2.1.orig.tar.bz2 create mode 100644 debian/pinentry-tqt/pinentry-tqt_1.2.1.orig.tar.bz2.asc diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/VERSION b/debian/pinentry-tqt/pinentry-tqt-1.1.0/VERSION deleted file mode 100644 index 9084fa2f..00000000 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/VERSION +++ /dev/null @@ -1 +0,0 @@ -1.1.0 diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/acinclude.m4 b/debian/pinentry-tqt/pinentry-tqt-1.1.0/acinclude.m4 deleted file mode 100644 index 7dfad70a..00000000 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/acinclude.m4 +++ /dev/null @@ -1,117 +0,0 @@ -dnl Autoconf macros used by PINENTRY -dnl -dnl Copyright (C) 2002 g10 Code GmbH -dnl -dnl -dnl GNUPG_CHECK_TYPEDEF(TYPE, HAVE_NAME) -dnl Check whether a typedef exists and create a #define $2 if it exists -dnl -AC_DEFUN([GNUPG_CHECK_TYPEDEF], - [ AC_MSG_CHECKING(for $1 typedef) - AC_CACHE_VAL(gnupg_cv_typedef_$1, - [AC_TRY_COMPILE([#define _GNU_SOURCE 1 - #include - #include ], [ - #undef $1 - int a = sizeof($1); - ], gnupg_cv_typedef_$1=yes, gnupg_cv_typedef_$1=no )]) - AC_MSG_RESULT($gnupg_cv_typedef_$1) - if test "$gnupg_cv_typedef_$1" = yes; then - AC_DEFINE($2,1,[Defined if a `]$1[' is typedef'd]) - fi - ]) - - -###################################################################### -# Check whether mlock is broken (hpux 10.20 raises a SIGBUS if mlock -# is not called from uid 0 (not tested whether uid 0 works) -# For DECs Tru64 we have also to check whether mlock is in librt -# mlock is there a macro using memlk() -###################################################################### -dnl GNUPG_CHECK_MLOCK -dnl -define([GNUPG_CHECK_MLOCK], - [ AC_CHECK_FUNCS(mlock) - if test "$ac_cv_func_mlock" = "no"; then - AC_CHECK_HEADERS(sys/mman.h) - if test "$ac_cv_header_sys_mman_h" = "yes"; then - # Add librt to LIBS: - AC_CHECK_LIB(rt, memlk) - AC_CACHE_CHECK([whether mlock is in sys/mman.h], - gnupg_cv_mlock_is_in_sys_mman, - [AC_TRY_LINK([ - #include - #ifdef HAVE_SYS_MMAN_H - #include - #endif - ], [ - int i; - - /* glibc defines this for functions which it implements - * to always fail with ENOSYS. Some functions are actually - * named something starting with __ and the normal name - * is an alias. */ - #if defined (__stub_mlock) || defined (__stub___mlock) - choke me - #else - mlock(&i, 4); - #endif - ; return 0; - ], - gnupg_cv_mlock_is_in_sys_mman=yes, - gnupg_cv_mlock_is_in_sys_mman=no)]) - if test "$gnupg_cv_mlock_is_in_sys_mman" = "yes"; then - AC_DEFINE(HAVE_MLOCK,1, - [Defined if the system supports an mlock() call]) - fi - fi - fi - if test "$ac_cv_func_mlock" = "yes"; then - AC_MSG_CHECKING(whether mlock is broken) - AC_CACHE_VAL(gnupg_cv_have_broken_mlock, - AC_TRY_RUN([ - #include - #include - #include - #include - #include - #include - - int main() - { - char *pool; - int err; - long int pgsize = getpagesize(); - - pool = malloc( 4096 + pgsize ); - if( !pool ) - return 2; - pool += (pgsize - ((long int)pool % pgsize)); - - err = mlock( pool, 4096 ); - if( !err || errno == EPERM ) - return 0; /* okay */ - - return 1; /* hmmm */ - } - - ], - gnupg_cv_have_broken_mlock="no", - gnupg_cv_have_broken_mlock="yes", - gnupg_cv_have_broken_mlock="assume-no" - ) - ) - if test "$gnupg_cv_have_broken_mlock" = "yes"; then - AC_DEFINE(HAVE_BROKEN_MLOCK,1, - [Defined if the mlock() call does not work]) - AC_MSG_RESULT(yes) - AC_CHECK_FUNCS(plock) - else - if test "$gnupg_cv_have_broken_mlock" = "no"; then - AC_MSG_RESULT(no) - else - AC_MSG_RESULT(assuming no) - fi - fi - fi - ]) diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/build-aux/config.guess b/debian/pinentry-tqt/pinentry-tqt-1.1.0/build-aux/config.guess deleted file mode 100755 index c4bd827a..00000000 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/build-aux/config.guess +++ /dev/null @@ -1,1456 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright 1992-2016 Free Software Foundation, Inc. - -timestamp='2016-05-15' - -# This file is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, see . -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that -# program. This Exception is an additional permission under section 7 -# of the GNU General Public License, version 3 ("GPLv3"). -# -# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. -# -# You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess -# -# Please send patches to . - - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] - -Output the configuration name of the system \`$me' is run on. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.guess ($timestamp) - -Originally written by Per Bothner. -Copyright 1992-2016 Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) - break ;; - esac -done - -if test $# != 0; then - echo "$me: too many arguments$help" >&2 - exit 1 -fi - -trap 'exit 1' 1 2 15 - -# CC_FOR_BUILD -- compiler used by this script. Note that the use of a -# compiler to aid in system detection is discouraged as it requires -# temporary files to be created and, as you can see below, it is a -# headache to deal with in a portable fashion. - -# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still -# use `HOST_CC' if defined, but it is deprecated. - -# Portable tmp directory creation inspired by the Autoconf team. - -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; set_cc_for_build= ;' - -# This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH -fi - -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -case "${UNAME_SYSTEM}" in -Linux|GNU|GNU/*) - # If the system lacks a compiler, then just pick glibc. - # We could probably try harder. - LIBC=gnu - - eval $set_cc_for_build - cat <<-EOF > $dummy.c - #include - #if defined(__UCLIBC__) - LIBC=uclibc - #elif defined(__dietlibc__) - LIBC=dietlibc - #else - LIBC=gnu - #endif - EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` - ;; -esac - -# Note: order is significant - the case branches are not exclusive. - -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in - *:NetBSD:*:*) - # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently - # switched to ELF, *-*-netbsd* would select the old - # object file format. This provides both forward - # compatibility and a consistent mechanism for selecting the - # object file format. - # - # Note: NetBSD doesn't particularly care about the vendor - # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ - /sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || \ - echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; - sh5el) machine=sh5le-unknown ;; - earmv*) - arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` - endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` - machine=${arch}${endian}-unknown - ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently (or will in the future) and ABI. - case "${UNAME_MACHINE_ARCH}" in - earm*) - os=netbsdelf - ;; - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ELF__ - then - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). - # Return netbsd for either. FIX? - os=netbsd - else - os=netbsdelf - fi - ;; - *) - os=netbsd - ;; - esac - # Determine ABI tags. - case "${UNAME_MACHINE_ARCH}" in - earm*) - expr='s/^earmv[0-9]/-eabi/;s/eb$//' - abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` - ;; - esac - # The OS release - # Debian GNU/NetBSD machines have a different userland, and - # thus, need a distinct triplet. However, they do not need - # kernel version information, so it can be replaced with a - # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in - Debian*) - release='-gnu' - ;; - *) - release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}${abi}" - exit ;; - *:Bitrig:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} - exit ;; - *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} - exit ;; - *:LibertyBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} - exit ;; - *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} - exit ;; - *:SolidBSD:*:*) - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} - exit ;; - macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd${UNAME_RELEASE} - exit ;; - *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} - exit ;; - *:Sortix:*:*) - echo ${UNAME_MACHINE}-unknown-sortix - exit ;; - alpha:OSF1:*:*) - case $UNAME_RELEASE in - *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - ;; - *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` - ;; - esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE=alpha ;; - "EV4.5 (21064)") - UNAME_MACHINE=alpha ;; - "LCA4 (21066/21068)") - UNAME_MACHINE=alpha ;; - "EV5 (21164)") - UNAME_MACHINE=alphaev5 ;; - "EV5.6 (21164A)") - UNAME_MACHINE=alphaev56 ;; - "EV5.6 (21164PC)") - UNAME_MACHINE=alphapca56 ;; - "EV5.7 (21164PC)") - UNAME_MACHINE=alphapca57 ;; - "EV6 (21264)") - UNAME_MACHINE=alphaev6 ;; - "EV6.7 (21264A)") - UNAME_MACHINE=alphaev67 ;; - "EV6.8CB (21264C)") - UNAME_MACHINE=alphaev68 ;; - "EV6.8AL (21264B)") - UNAME_MACHINE=alphaev68 ;; - "EV6.8CX (21264D)") - UNAME_MACHINE=alphaev68 ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE=alphaev69 ;; - "EV7 (21364)") - UNAME_MACHINE=alphaev7 ;; - "EV7.9 (21364A)") - UNAME_MACHINE=alphaev79 ;; - esac - # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` - # Reset EXIT trap before exiting to avoid spurious non-zero exit code. - exitcode=$? - trap '' 0 - exit $exitcode ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos - exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos - exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition - exit ;; - *:z/VM:*:*) - echo s390-ibm-zvmoe - exit ;; - *:OS400:*:*) - echo powerpc-ibm-os400 - exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit ;; - arm*:riscos:*:*|arm*:RISCOS:*:*) - echo arm-unknown-riscos - exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit ;; - DRS?6000:unix:4.0:6*) - echo sparc-icl-nx6 - exit ;; - DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7; exit ;; - esac ;; - s390x:SunOS:*:*) - echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux${UNAME_RELEASE} - exit ;; - i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval $set_cc_for_build - SUN_ARCH=i386 - # If there is a compiler, see if it is configured for 64-bit objects. - # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. - # This test works for both compilers. - if [ "$CC_FOR_BUILD" != no_compiler_found ]; then - if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - SUN_ARCH=x86_64 - fi - fi - echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} - exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac - exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} - exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit ;; - m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} - exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} - exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} - exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} - exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -#ifdef __cplusplus -#include /* for printf() prototype */ - int main (int argc, char *argv[]) { -#else - int main (argc, argv) int argc; char *argv[]; { -#endif - #if defined (host_mips) && defined (MIPSEB) - #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`$dummy $dummyarg` && - { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} - exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi - exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix - exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` - then - echo "$SYSTEM_NAME" - else - echo rs6000-ibm-aix3.2.5 - fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi - exit ;; - *:AIX:*:[4567]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/lslpp ] ; then - IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | - awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 - exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx - exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 - 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH=hppa2.0n ;; - 64) HP_ARCH=hppa2.0w ;; - '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 - esac ;; - esac - fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - - #define _HPUX_SOURCE - #include - #include - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } -EOF - (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ ${HP_ARCH} = hppa2.0w ] - then - eval $set_cc_for_build - - # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating - # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler - # generating 64-bit code. GNU and HP use different nomenclature: - # - # $ CC_FOR_BUILD=cc ./config.guess - # => hppa2.0w-hp-hpux11.23 - # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess - # => hppa64-hp-hpux11.23 - - if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | - grep -q __LP64__ - then - HP_ARCH=hppa2.0w - else - HP_ARCH=hppa64 - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} - exit ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); - /* The order matters, because CPU_IS_HP_MC68K erroneously returns - true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct - results, however. */ - if (CPU_IS_PA_RISC (cpu)) - { - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; - case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; - default: puts ("hppa-hitachi-hiuxwe2"); break; - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 - exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd - exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf - exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi - exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` - FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:FreeBSD:*:*) - UNAME_PROCESSOR=`/usr/bin/uname -p` - case ${UNAME_PROCESSOR} in - amd64) - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - *) - echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - esac - exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit ;; - *:MINGW64*:*) - echo ${UNAME_MACHINE}-pc-mingw64 - exit ;; - *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit ;; - *:MSYS*:*) - echo ${UNAME_MACHINE}-pc-msys - exit ;; - i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 - exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit ;; - *:Interix*:*) - case ${UNAME_MACHINE} in - x86) - echo i586-pc-interix${UNAME_RELEASE} - exit ;; - authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix${UNAME_RELEASE} - exit ;; - IA64) - echo ia64-unknown-interix${UNAME_RELEASE} - exit ;; - esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; - 8664:Windows_NT:*) - echo x86_64-pc-mks - exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin - exit ;; - amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-unknown-cygwin - exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - *:GNU:*:*) - # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit ;; - *:GNU/*:*:*) - # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} - exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit ;; - aarch64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - aarch64_be:Linux:*:*) - UNAME_MACHINE=aarch64_be - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC=gnulibc1 ; fi - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - arc:Linux:*:* | arceb:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - arm*:Linux:*:*) - eval $set_cc_for_build - if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_EABI__ - then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - else - if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_PCS_VFP - then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi - else - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf - fi - fi - exit ;; - avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - cris:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} - exit ;; - crisv32:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} - exit ;; - e2k:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - frv:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - hexagon:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - i*86:Linux:*:*) - echo ${UNAME_MACHINE}-pc-linux-${LIBC} - exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - k1om:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - mips:Linux:*:* | mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef ${UNAME_MACHINE} - #undef ${UNAME_MACHINE}el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=${UNAME_MACHINE}el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=${UNAME_MACHINE} - #else - CPU= - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } - ;; - openrisc*:Linux:*:*) - echo or1k-unknown-linux-${LIBC} - exit ;; - or32:Linux:*:* | or1k*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - padre:Linux:*:*) - echo sparc-unknown-linux-${LIBC} - exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-${LIBC} - exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; - PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; - *) echo hppa-unknown-linux-${LIBC} ;; - esac - exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-${LIBC} - exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-${LIBC} - exit ;; - ppc64le:Linux:*:*) - echo powerpc64le-unknown-linux-${LIBC} - exit ;; - ppcle:Linux:*:*) - echo powerpcle-unknown-linux-${LIBC} - exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux-${LIBC} - exit ;; - sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - tile*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-${LIBC} - exit ;; - x86_64:Linux:*:*) - echo ${UNAME_MACHINE}-pc-linux-${LIBC} - exit ;; - xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 - exit ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx - exit ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop - exit ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos - exit ;; - i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable - exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi - exit ;; - i*86:*:5:[678]*) - # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi - exit ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i586. - # Note: whatever this is, it MUST be the same as what config.sub - # prints for the "djgpp" host, or else GDB configure will decide that - # this is a cross-build. - echo i586-pc-msdosdjgpp - exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi - exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv - exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit ;; - M68*:*:R3V[5678]*:*) - test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; - 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4; exit; } ;; - NCR*:*:4.2:* | MPRAS*:*:4.2:*) - OS_REL='.3' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} - exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} - exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi - exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit ;; - i*86:VOS:*:*) - # From Paul.Green@stratus.com. - echo ${UNAME_MACHINE}-stratus-vos - exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} - exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi - exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit ;; - BePC:Haiku:*:*) # Haiku running on Intel PC compatible. - echo i586-pc-haiku - exit ;; - x86_64:Haiku:*:*) - echo x86_64-unknown-haiku - exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} - exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} - exit ;; - SX-7:SUPER-UX:*:*) - echo sx7-nec-superux${UNAME_RELEASE} - exit ;; - SX-8:SUPER-UX:*:*) - echo sx8-nec-superux${UNAME_RELEASE} - exit ;; - SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux${UNAME_RELEASE} - exit ;; - SX-ACE:SUPER-UX:*:*) - echo sxace-nec-superux${UNAME_RELEASE} - exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - eval $set_cc_for_build - if test "$UNAME_PROCESSOR" = unknown ; then - UNAME_PROCESSOR=powerpc - fi - if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then - if [ "$CC_FOR_BUILD" != no_compiler_found ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - case $UNAME_PROCESSOR in - i386) UNAME_PROCESSOR=x86_64 ;; - powerpc) UNAME_PROCESSOR=powerpc64 ;; - esac - fi - fi - elif test "$UNAME_PROCESSOR" = i386 ; then - # Avoid executing cc on OS X 10.9, as it ships with a stub - # that puts up a graphical alert prompting to install - # developer tools. Any system running Mac OS X 10.7 or - # later (Darwin 11 and later) is required to have a 64-bit - # processor. This is not true of the ARM version of Darwin - # that Apple uses in portable devices. - UNAME_PROCESSOR=x86_64 - fi - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} - exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = x86; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit ;; - *:QNX:*:4*) - echo i386-pc-qnx - exit ;; - NEO-?:NONSTOP_KERNEL:*:*) - echo neo-tandem-nsk${UNAME_RELEASE} - exit ;; - NSE-*:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} - exit ;; - NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} - exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = 386; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 - exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex - exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit ;; - *:ITS:*:*) - echo pdp10-unknown-its - exit ;; - SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} - exit ;; - *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit ;; - *:*VMS:*:*) - UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in - A*) echo alpha-dec-vms ; exit ;; - I*) echo ia64-dec-vms ; exit ;; - V*) echo vax-dec-vms ; exit ;; - esac ;; - *:XENIX:*:SysV) - echo i386-pc-xenix - exit ;; - i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'` - exit ;; - i*86:rdos:*:*) - echo ${UNAME_MACHINE}-pc-rdos - exit ;; - i*86:AROS:*:*) - echo ${UNAME_MACHINE}-pc-aros - exit ;; - x86_64:VMkernel:*:*) - echo ${UNAME_MACHINE}-unknown-esx - exit ;; - amd64:Isilon\ OneFS:*:*) - echo x86_64-unknown-onefs - exit ;; -esac - -cat >&2 </dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null` - -hostinfo = `(hostinfo) 2>/dev/null` -/bin/universe = `(/bin/universe) 2>/dev/null` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` -/bin/arch = `(/bin/arch) 2>/dev/null` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` - -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} -EOF - -exit 1 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/build-aux/config.sub b/debian/pinentry-tqt/pinentry-tqt-1.1.0/build-aux/config.sub deleted file mode 100755 index 9feb73bf..00000000 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/build-aux/config.sub +++ /dev/null @@ -1,1823 +0,0 @@ -#! /bin/sh -# Configuration validation subroutine script. -# Copyright 1992-2016 Free Software Foundation, Inc. - -timestamp='2016-06-20' - -# This file is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, see . -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that -# program. This Exception is an additional permission under section 7 -# of the GNU General Public License, version 3 ("GPLv3"). - - -# Please send patches to . -# -# Configuration subroutine to validate and canonicalize a configuration type. -# Supply the specified configuration type as an argument. -# If it is invalid, we print an error message on stderr and exit with code 1. -# Otherwise, we print the canonical config type on stdout and succeed. - -# You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub - -# This file is supposed to be the same for all GNU packages -# and recognize all the CPU types, system types and aliases -# that are meaningful with *any* GNU software. -# Each package is responsible for reporting which valid configurations -# it does not support. The user should be able to distinguish -# a failure to support a valid configuration from a meaningless -# configuration. - -# The goal of this file is to map all the various variations of a given -# machine specification into a single specification in the form: -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or in some cases, the newer four-part form: -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# It is wrong to echo any other type of specification. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS - -Canonicalize a configuration name. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.sub ($timestamp) - -Copyright 1992-2016 Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 - exit ;; - - * ) - break ;; - esac -done - -case $# in - 0) echo "$me: missing argument$help" >&2 - exit 1;; - 1) ;; - *) echo "$me: too many arguments$help" >&2 - exit 1;; -esac - -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ - linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ - knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ - kopensolaris*-gnu* | \ - storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - android-linux) - os=-linux-android - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray | -microblaze*) - os= - basic_machine=$1 - ;; - -bluegene*) - os=-cnk - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco6) - os=-sco5v6 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5v6*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*178) - os=-lynxos178 - ;; - -lynx*5) - os=-lynxos5 - ;; - -lynx*) - os=-lynxos - ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` - ;; - -psos*) - os=-psos - ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; -esac - -# Decode aliases for certain CPU-COMPANY combinations. -case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | aarch64 | aarch64_be \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ - | arc | arceb \ - | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ - | avr | avr32 \ - | ba \ - | be32 | be64 \ - | bfin \ - | c4x | c8051 | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | e2k | epiphany \ - | fido | fr30 | frv | ft32 \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | hexagon \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ - | k1om \ - | le32 | le64 \ - | lm32 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ - | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa32r6 | mipsisa32r6el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64r6 | mipsisa64r6el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipsr5900 | mipsr5900el \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | moxie \ - | mt \ - | msp430 \ - | nds32 | nds32le | nds32be \ - | nios | nios2 | nios2eb | nios2el \ - | ns16k | ns32k \ - | open8 | or1k | or1knd | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle \ - | pyramid \ - | riscv32 | riscv64 \ - | rl78 | rx \ - | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu \ - | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ - | ubicom32 \ - | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ - | visium \ - | we32k \ - | x86 | xc16x | xstormy16 | xtensa \ - | z8k | z80) - basic_machine=$basic_machine-unknown - ;; - c54x) - basic_machine=tic54x-unknown - ;; - c55x) - basic_machine=tic55x-unknown - ;; - c6x) - basic_machine=tic6x-unknown - ;; - leon|leon[3-9]) - basic_machine=sparc-$basic_machine - ;; - m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; - ms1) - basic_machine=mt-unknown - ;; - - strongarm | thumb | xscale) - basic_machine=arm-unknown - ;; - xgate) - basic_machine=$basic_machine-unknown - os=-none - ;; - xscaleeb) - basic_machine=armeb-unknown - ;; - - xscaleel) - basic_machine=armel-unknown - ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | aarch64-* | aarch64_be-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* | avr32-* \ - | ba-* \ - | be32-* | be64-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* \ - | c8051-* | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | e2k-* | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | hexagon-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ - | k1om-* \ - | le32-* | le64-* \ - | lm32-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ - | microblaze-* | microblazeel-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64octeon-* | mips64octeonel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa32r6-* | mipsisa32r6el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64r6-* | mipsisa64r6el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipsr5900-* | mipsr5900el-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ - | nds32-* | nds32le-* | nds32be-* \ - | nios-* | nios2-* | nios2eb-* | nios2el-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | open8-* \ - | or1k*-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ - | pyramid-* \ - | riscv32-* | riscv64-* \ - | rl78-* | romp-* | rs6000-* | rx-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ - | tahoe-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tile*-* \ - | tron-* \ - | ubicom32-* \ - | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ - | vax-* \ - | visium-* \ - | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* \ - | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-* | z80-*) - ;; - # Recognize the basic CPU types without company name, with glob match. - xtensa*) - basic_machine=$basic_machine-unknown - ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - abacus) - basic_machine=abacus-unknown - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amd64) - basic_machine=x86_64-pc - ;; - amd64-*) - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aros) - basic_machine=i386-pc - os=-aros - ;; - asmjs) - basic_machine=asmjs-unknown - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - blackfin) - basic_machine=bfin-unknown - os=-linux - ;; - blackfin-*) - basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - bluegene*) - basic_machine=powerpc-ibm - os=-cnk - ;; - c54x-*) - basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c55x-*) - basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c6x-*) - basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - cegcc) - basic_machine=arm-unknown - os=-cegcc - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - craynv) - basic_machine=craynv-cray - os=-unicosmp - ;; - cr16 | cr16-*) - basic_machine=cr16-unknown - os=-elf - ;; - crds | unos) - basic_machine=m68k-crds - ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - crx) - basic_machine=crx-unknown - os=-elf - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 - ;; - decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 - ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dicos) - basic_machine=i686-pc - os=-dicos - ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; - e500v[12]) - basic_machine=powerpc-unknown - os=$os"spe" - ;; - e500v[12]-*) - basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - os=$os"spe" - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd - ;; - encore | umax | mmax) - basic_machine=ns32k-encore - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose - ;; - fx2800) - basic_machine=i860-alliant - ;; - genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 - ;; - h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux - ;; - hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp - ;; - hp9k3[2-9][0-9]) - basic_machine=m68k-hp - ;; - hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp - ;; - hp9k78[0-9] | hp78[0-9]) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm - ;; - i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 - ;; - i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 - ;; - i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv - ;; - i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - i386-vsta | vsta) - basic_machine=i386-unknown - os=-vsta - ;; - iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) - ;; - *) - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - leon-*|leon[3-9]-*) - basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` - ;; - m68knommu) - basic_machine=m68k-unknown - os=-linux - ;; - m68knommu-*) - basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - microblaze*) - basic_machine=microblaze-xilinx - ;; - mingw64) - basic_machine=x86_64-pc - os=-mingw64 - ;; - mingw32) - basic_machine=i686-pc - os=-mingw32 - ;; - mingw32ce) - basic_machine=arm-unknown - os=-mingw32ce - ;; - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - moxiebox) - basic_machine=moxie-unknown - os=-moxiebox - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` - ;; - msys) - basic_machine=i686-pc - os=-msys - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - nacl) - basic_machine=le32-unknown - os=-nacl - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos - ;; - news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next ) - basic_machine=m68k-next - case $os in - -nextstep* ) - ;; - -ns2*) - os=-nextstep2 - ;; - *) - os=-nextstep3 - ;; - esac - ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; - neo-tandem) - basic_machine=neo-tandem - ;; - nse-tandem) - basic_machine=nse-tandem - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - openrisc | openrisc-*) - basic_machine=or32-unknown - ;; - os400) - basic_machine=powerpc-ibm - os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k - ;; - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - parisc) - basic_machine=hppa-unknown - os=-linux - ;; - parisc-*) - basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pc98) - basic_machine=i386-pc - ;; - pc98-*) - basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; - pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; - pentium4) - basic_machine=i786-pc - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc | ppcbe) basic_machine=powerpc-unknown - ;; - ppc-* | ppcbe-*) - basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64) basic_machine=powerpc64-unknown - ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) - basic_machine=powerpc64le-unknown - ;; - ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; - rdos | rdos64) - basic_machine=x86_64-pc - os=-rdos - ;; - rdos32) - basic_machine=i386-pc - os=-rdos - ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) - basic_machine=romp-ibm - ;; - s390 | s390-*) - basic_machine=s390-ibm - ;; - s390x | s390x-*) - basic_machine=s390x-ibm - ;; - sa29200) - basic_machine=a29k-amd - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; - sde) - basic_machine=mipsisa32-sde - os=-elf - ;; - sei) - basic_machine=mips-sei - os=-seiux - ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; - sh5el) - basic_machine=sh5le-unknown - ;; - sh64) - basic_machine=sh64-unknown - ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; - spur) - basic_machine=spur-unknown - ;; - st2000) - basic_machine=m68k-tandem - ;; - stratus) - basic_machine=i860-stratus - os=-sysv4 - ;; - strongarm-* | thumb-*) - basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - sun2) - basic_machine=m68000-sun - ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - os=-sunos4 - ;; - sun3os3) - basic_machine=m68k-sun - os=-sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - os=-sunos4 - ;; - sun4os3) - basic_machine=sparc-sun - os=-sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - os=-sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - os=-solaris2 - ;; - sun3 | sun3-*) - basic_machine=m68k-sun - ;; - sun4) - basic_machine=sparc-sun - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun - ;; - sv1) - basic_machine=sv1-cray - os=-unicos - ;; - symmetry) - basic_machine=i386-sequent - os=-dynix - ;; - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; - tile*) - basic_machine=$basic_machine-unknown - os=-linux-gnu - ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; - tpf) - basic_machine=s390x-ibm - os=-tpf - ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; - v810 | necv810) - basic_machine=v810-nec - os=-none - ;; - vaxv) - basic_machine=vax-dec - os=-sysv - ;; - vms) - basic_machine=vax-dec - os=-vms - ;; - vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; - vxworks960) - basic_machine=i960-wrs - os=-vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - os=-vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - os=-vxworks - ;; - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; - xbox) - basic_machine=i686-pc - os=-mingw32 - ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - xscale-* | xscalee[bl]-*) - basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - z80-*-coff) - basic_machine=z80-unknown - os=-sim - ;; - none) - basic_machine=none-none - os=-none - ;; - -# Here we handle the default manufacturer of certain CPU types. It is in -# some cases the only manufacturer, in others, it is the most popular. - w89k) - basic_machine=hppa1.1-winbond - ;; - op50n) - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; - mmix) - basic_machine=mmix-knuth - ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; - sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; - sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; - orion105) - basic_machine=clipper-highlevel - ;; - mac | mpw | mac-mpw) - basic_machine=m68k-apple - ;; - pmac | pmac-mpw) - basic_machine=powerpc-apple - ;; - *-unknown) - # Make sure to match an already-canonicalized machine name. - ;; - *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; -esac - -# Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` - ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` - ;; - *) - ;; -esac - -# Decode manufacturer-specific aliases for certain operating systems. - -if [ x"$os" != x"" ] -then -case $os in - # First match some system type aliases - # that might get confused with valid system types. - # -solaris* is a basic system type, with this one exception. - -auroraux) - os=-auroraux - ;; - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; - -solaris) - os=-solaris2 - ;; - -svr4*) - os=-sysv4 - ;; - -unixware*) - os=-sysv4.2uw - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ - | -sym* | -kopensolaris* | -plan9* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* | -cloudabi* | -sortix* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ - | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ - | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* | -cegcc* \ - | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ - | -linux-newlib* | -linux-musl* | -linux-uclibc* \ - | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ - | -onefs* | -tirtos* | -phoenix*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os - ;; - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; - -linux-dietlibc) - os=-linux-dietlibc - ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; - -os400*) - os=-os400 - ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; - -utek*) - os=-bsd - ;; - -dynix*) - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; - -syllable*) - os=-syllable - ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova - ;; - -ns2 ) - os=-nextstep2 - ;; - -nsk*) - os=-nsk - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; - -tpf*) - os=-tpf - ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 - ;; - -svr3) - os=-sysv3 - ;; - -sysvr4) - os=-sysv4 - ;; - # This must come after -sysvr4. - -sysv*) - ;; - -ose*) - os=-ose - ;; - -es1800*) - os=-ose - ;; - -xenix) - os=-xenix - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint - ;; - -aros*) - os=-aros - ;; - -zvmoe) - os=-zvmoe - ;; - -dicos*) - os=-dicos - ;; - -nacl*) - ;; - -ios) - ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -esac -else - -# Here we handle the default operating systems that come with various machines. -# The value should be what the vendor currently ships out the door with their -# machine or put another way, the most popular os provided with the machine. - -# Note that if you're going to try to match "-MANUFACTURER" here (say, -# "-sun"), then you have to tell the case statement up towards the top -# that MANUFACTURER isn't an operating system. Otherwise, code above -# will signal an error saying that MANUFACTURER isn't an operating -# system, and we'll never get to this point. - -case $basic_machine in - score-*) - os=-elf - ;; - spu-*) - os=-elf - ;; - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; - c4x-* | tic4x-*) - os=-coff - ;; - c8051-*) - os=-elf - ;; - hexagon-*) - os=-elf - ;; - tic54x-*) - os=-coff - ;; - tic55x-*) - os=-coff - ;; - tic6x-*) - os=-coff - ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) - os=-ultrix4.2 - ;; - m68*-apollo) - os=-domain - ;; - i386-sun) - os=-sunos4.0.2 - ;; - m68000-sun) - os=-sunos3 - ;; - m68*-cisco) - os=-aout - ;; - mep-*) - os=-elf - ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - or32-*) - os=-coff - ;; - *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; - *-haiku) - os=-haiku - ;; - *-ibm) - os=-aix - ;; - *-knuth) - os=-mmixware - ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf - ;; - *-hp) - os=-hpux - ;; - *-hitachi) - os=-hiux - ;; - i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv - ;; - *-cbm) - os=-amigaos - ;; - *-dg) - os=-dgux - ;; - *-dolphin) - os=-sysv3 - ;; - m68k-ccur) - os=-rtu - ;; - m88k-omron*) - os=-luna - ;; - *-next ) - os=-nextstep - ;; - *-sequent) - os=-ptx - ;; - *-crds) - os=-unos - ;; - *-ns) - os=-genix - ;; - i370-*) - os=-mvs - ;; - *-next) - os=-nextstep3 - ;; - *-gould) - os=-sysv - ;; - *-highlevel) - os=-bsd - ;; - *-encore) - os=-bsd - ;; - *-sgi) - os=-irix - ;; - *-siemens) - os=-sysv4 - ;; - *-masscomp) - os=-rtu - ;; - f30[01]-fujitsu | f700-fujitsu) - os=-uxpv - ;; - *-rom68k) - os=-coff - ;; - *-*bug) - os=-coff - ;; - *-apple) - os=-macos - ;; - *-atari*) - os=-mint - ;; - *) - os=-none - ;; -esac -fi - -# Here we handle the case where we know the os, and the CPU type, but not the -# manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) - vendor=acorn - ;; - -sunos*) - vendor=sun - ;; - -cnk*|-aix*) - vendor=ibm - ;; - -beos*) - vendor=be - ;; - -hpux*) - vendor=hp - ;; - -mpeix*) - vendor=hp - ;; - -hiux*) - vendor=hitachi - ;; - -unos*) - vendor=crds - ;; - -dgux*) - vendor=dg - ;; - -luna*) - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; - -os400*) - vendor=ibm - ;; - -ptx*) - vendor=sequent - ;; - -tpf*) - vendor=ibm - ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi - ;; - -mpw* | -macos*) - vendor=apple - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - vendor=atari - ;; - -vos*) - vendor=stratus - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; -esac - -echo $basic_machine$os -exit - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/patches/0001-avoid-self-describing-as-a-beta.patch b/debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/patches/0001-avoid-self-describing-as-a-beta.patch deleted file mode 100644 index 09cee783..00000000 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/patches/0001-avoid-self-describing-as-a-beta.patch +++ /dev/null @@ -1,49 +0,0 @@ -From: Daniel Kahn Gillmor -Date: Wed, 13 May 2015 16:09:21 -0400 -Subject: avoid self-describing as a beta - -Using autoreconf against the source as distributed in tarball form -invariably results in a package that thinks it's a "beta" package, -which produces the "THIS IS A DEVELOPMENT VERSION" warning string. - -since we use dh_autoreconf, i need this patch to avoid producing -builds that announce themselves as DEVELOPMENT VERSIONs. - -See discussion at: - - http://lists.gnupg.org/pipermail/gnupg-devel/2014-November/029065.html ---- - autogen.sh | 4 ++-- - configure.ac | 4 +--- - 2 files changed, 3 insertions(+), 5 deletions(-) - -diff --git a/autogen.sh b/autogen.sh -index 37edfc6..2dff9cd 100755 ---- a/autogen.sh -+++ b/autogen.sh -@@ -228,8 +228,8 @@ if [ "$myhost" = "find-version" ]; then - rvd=$((0x$(echo ${rev} | head -c 4))) - else - ingit=no -- beta=yes -- tmp="-unknown" -+ beta=no -+ tmp="" - rev="0000000" - rvd="0" - fi -diff --git a/configure.ac b/configure.ac -index c1b66d6..05a902a 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -36,9 +36,7 @@ m4_define([mym4_revision], m4_esyscmd([git branch -v 2>/dev/null \ - | awk '/^\* / {printf "%s",$3}'])) - m4_define([mym4_revision_dec], - m4_esyscmd_s([echo $((0x$(echo ]mym4_revision[|head -c 4)))])) --m4_define([mym4_betastring], -- m4_esyscmd_s([git describe --match 'pinentry-[0-9].[0-9].*[0-9]' \ -- --long| awk -F- '$3!=0{print"-beta"$3}'])) -+m4_define([mym4_betastring],[]) - m4_define([mym4_isgit],m4_if(mym4_betastring,[],[no],[yes])) - m4_define([mym4_full_version],[mym4_version[]mym4_betastring]) - diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/patches/series b/debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/patches/series deleted file mode 100644 index 5afae467..00000000 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/patches/series +++ /dev/null @@ -1 +0,0 @@ -0001-avoid-self-describing-as-a-beta.patch diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/tests/control b/debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/tests/control deleted file mode 100644 index 83ef7dc8..00000000 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/tests/control +++ /dev/null @@ -1,2 +0,0 @@ -Tests: simple-tty -Depends: python3, pinentry-tty diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/doc/stamp-vti b/debian/pinentry-tqt/pinentry-tqt-1.1.0/doc/stamp-vti deleted file mode 100644 index 8ed26ce8..00000000 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/doc/stamp-vti +++ /dev/null @@ -1,4 +0,0 @@ -@set UPDATED 3 December 2017 -@set UPDATED-MONTH December 2017 -@set EDITION 1.1.0 -@set VERSION 1.1.0 diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/doc/version.texi b/debian/pinentry-tqt/pinentry-tqt-1.1.0/doc/version.texi deleted file mode 100644 index 8ed26ce8..00000000 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/doc/version.texi +++ /dev/null @@ -1,4 +0,0 @@ -@set UPDATED 3 December 2017 -@set UPDATED-MONTH December 2017 -@set EDITION 1.1.0 -@set VERSION 1.1.0 diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/m4/gpg-error.m4 b/debian/pinentry-tqt/pinentry-tqt-1.1.0/m4/gpg-error.m4 deleted file mode 100644 index 1661204c..00000000 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/m4/gpg-error.m4 +++ /dev/null @@ -1,121 +0,0 @@ -# gpg-error.m4 - autoconf macro to detect libgpg-error. -# Copyright (C) 2002, 2003, 2004, 2011, 2014 g10 Code GmbH -# -# This file is free software; as a special exception the author gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. -# -# This file is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the -# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# -# Last-changed: 2014-10-02 - - -dnl AM_PATH_GPG_ERROR([MINIMUM-VERSION, -dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]]) -dnl -dnl Test for libgpg-error and define GPG_ERROR_CFLAGS, GPG_ERROR_LIBS, -dnl GPG_ERROR_MT_CFLAGS, and GPG_ERROR_MT_LIBS. The _MT_ variants are -dnl used for programs requireing real multi thread support. -dnl -dnl If a prefix option is not used, the config script is first -dnl searched in $SYSROOT/bin and then along $PATH. If the used -dnl config script does not match the host specification the script -dnl is added to the gpg_config_script_warn variable. -dnl -AC_DEFUN([AM_PATH_GPG_ERROR], -[ AC_REQUIRE([AC_CANONICAL_HOST]) - gpg_error_config_prefix="" - dnl --with-libgpg-error-prefix=PFX is the preferred name for this option, - dnl since that is consistent with how our three siblings use the directory/ - dnl package name in --with-$dir_name-prefix=PFX. - AC_ARG_WITH(libgpg-error-prefix, - AC_HELP_STRING([--with-libgpg-error-prefix=PFX], - [prefix where GPG Error is installed (optional)]), - [gpg_error_config_prefix="$withval"]) - - dnl Accept --with-gpg-error-prefix and make it work the same as - dnl --with-libgpg-error-prefix above, for backwards compatibility, - dnl but do not document this old, inconsistently-named option. - AC_ARG_WITH(gpg-error-prefix,, - [gpg_error_config_prefix="$withval"]) - - if test x"${GPG_ERROR_CONFIG}" = x ; then - if test x"${gpg_error_config_prefix}" != x ; then - GPG_ERROR_CONFIG="${gpg_error_config_prefix}/bin/gpg-error-config" - else - case "${SYSROOT}" in - /*) - if test -x "${SYSROOT}/bin/gpg-error-config" ; then - GPG_ERROR_CONFIG="${SYSROOT}/bin/gpg-error-config" - fi - ;; - '') - ;; - *) - AC_MSG_WARN([Ignoring \$SYSROOT as it is not an absolute path.]) - ;; - esac - fi - fi - - AC_PATH_PROG(GPG_ERROR_CONFIG, gpg-error-config, no) - min_gpg_error_version=ifelse([$1], ,0.0,$1) - AC_MSG_CHECKING(for GPG Error - version >= $min_gpg_error_version) - ok=no - if test "$GPG_ERROR_CONFIG" != "no" \ - && test -f "$GPG_ERROR_CONFIG" ; then - req_major=`echo $min_gpg_error_version | \ - sed 's/\([[0-9]]*\)\.\([[0-9]]*\)/\1/'` - req_minor=`echo $min_gpg_error_version | \ - sed 's/\([[0-9]]*\)\.\([[0-9]]*\)/\2/'` - gpg_error_config_version=`$GPG_ERROR_CONFIG $gpg_error_config_args --version` - major=`echo $gpg_error_config_version | \ - sed 's/\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'` - minor=`echo $gpg_error_config_version | \ - sed 's/\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'` - if test "$major" -gt "$req_major"; then - ok=yes - else - if test "$major" -eq "$req_major"; then - if test "$minor" -ge "$req_minor"; then - ok=yes - fi - fi - fi - fi - if test $ok = yes; then - GPG_ERROR_CFLAGS=`$GPG_ERROR_CONFIG $gpg_error_config_args --cflags` - GPG_ERROR_LIBS=`$GPG_ERROR_CONFIG $gpg_error_config_args --libs` - GPG_ERROR_MT_CFLAGS=`$GPG_ERROR_CONFIG $gpg_error_config_args --mt --cflags 2>/dev/null` - GPG_ERROR_MT_LIBS=`$GPG_ERROR_CONFIG $gpg_error_config_args --mt --libs 2>/dev/null` - AC_MSG_RESULT([yes ($gpg_error_config_version)]) - ifelse([$2], , :, [$2]) - gpg_error_config_host=`$GPG_ERROR_CONFIG $gpg_error_config_args --host 2>/dev/null || echo none` - if test x"$gpg_error_config_host" != xnone ; then - if test x"$gpg_error_config_host" != x"$host" ; then - AC_MSG_WARN([[ -*** -*** The config script $GPG_ERROR_CONFIG was -*** built for $gpg_error_config_host and thus may not match the -*** used host $host. -*** You may want to use the configure option --with-gpg-error-prefix -*** to specify a matching config script or use \$SYSROOT. -***]]) - gpg_config_script_warn="$gpg_config_script_warn libgpg-error" - fi - fi - else - GPG_ERROR_CFLAGS="" - GPG_ERROR_LIBS="" - GPG_ERROR_MT_CFLAGS="" - GPG_ERROR_MT_LIBS="" - AC_MSG_RESULT(no) - ifelse([$3], , :, [$3]) - fi - AC_SUBST(GPG_ERROR_CFLAGS) - AC_SUBST(GPG_ERROR_LIBS) - AC_SUBST(GPG_ERROR_MT_CFLAGS) - AC_SUBST(GPG_ERROR_MT_LIBS) -]) diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/m4/iconv.m4 b/debian/pinentry-tqt/pinentry-tqt-1.1.0/m4/iconv.m4 deleted file mode 100644 index c5f35798..00000000 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/m4/iconv.m4 +++ /dev/null @@ -1,103 +0,0 @@ -# iconv.m4 serial AM4 (gettext-0.11.3) -dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. -dnl This file is free software, distributed under the terms of the GNU -dnl General Public License. As a special exception to the GNU General -dnl Public License, this file may be distributed as part of a program -dnl that contains a configuration script generated by Autoconf, under -dnl the same distribution terms as the rest of that program. - -dnl From Bruno Haible. - -AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], -[ - dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - AC_REQUIRE([AC_LIB_RPATH]) - - dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV - dnl accordingly. - AC_LIB_LINKFLAGS_BODY([iconv]) -]) - -AC_DEFUN([AM_ICONV_LINK], -[ - dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and - dnl those with the standalone portable GNU libiconv installed). - - dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV - dnl accordingly. - AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) - - dnl Add $INCICONV to CPPFLAGS before performing the following checks, - dnl because if the user has installed libiconv and not disabled its use - dnl via --without-libiconv-prefix, he wants to use it. The first - dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed. - am_save_CPPFLAGS="$CPPFLAGS" - AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) - - AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [ - am_cv_func_iconv="no, consider installing GNU libiconv" - am_cv_lib_iconv=no - AC_TRY_LINK([#include -#include ], - [iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd);], - am_cv_func_iconv=yes) - if test "$am_cv_func_iconv" != yes; then - am_save_LIBS="$LIBS" - LIBS="$LIBS $LIBICONV" - AC_TRY_LINK([#include -#include ], - [iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd);], - am_cv_lib_iconv=yes - am_cv_func_iconv=yes) - LIBS="$am_save_LIBS" - fi - ]) - if test "$am_cv_func_iconv" = yes; then - AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) - fi - if test "$am_cv_lib_iconv" = yes; then - AC_MSG_CHECKING([how to link with libiconv]) - AC_MSG_RESULT([$LIBICONV]) - else - dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV - dnl either. - CPPFLAGS="$am_save_CPPFLAGS" - LIBICONV= - LTLIBICONV= - fi - AC_SUBST(LIBICONV) - AC_SUBST(LTLIBICONV) -]) - -AC_DEFUN([AM_ICONV], -[ - AM_ICONV_LINK - if test "$am_cv_func_iconv" = yes; then - AC_MSG_CHECKING([for iconv declaration]) - AC_CACHE_VAL(am_cv_proto_iconv, [ - AC_TRY_COMPILE([ -#include -#include -extern -#ifdef __cplusplus -"C" -#endif -#if defined(__STDC__) || defined(__cplusplus) -size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); -#else -size_t iconv(); -#endif -], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const") - am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) - am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` - AC_MSG_RESULT([$]{ac_t:- - }[$]am_cv_proto_iconv) - AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, - [Define as const if the declaration of iconv() needs const.]) - fi -]) diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/AUTHORS b/debian/pinentry-tqt/pinentry-tqt-1.2.1/AUTHORS similarity index 92% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/AUTHORS rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/AUTHORS index 2482e1fe..36bf40bc 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/AUTHORS +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/AUTHORS @@ -15,14 +15,14 @@ List of Copyright holders ========================= Copyright (C) 1999 Robert Bihlmeyer -Copyright (C) 2001-2004, 2007-2008, 2010, 2015-2017 g10 Code GmbH +Copyright (C) 2001-2004, 2007-2008, 2010, 2015-2017, 2021 g10 Code GmbH Copyright (C) 2002, 2008 Klarälvdalens Datakonsult AB (KDAB) Copyright (C) 2004 by Albrecht Dreß -Copyright 2007 Ingo Klöcker +Copyright (C) 2007 Ingo Klöcker Copyright (C) 2014 Serge Voilokov Copyright (C) 2015 Daiki Ueno Copyright (C) 2015 Daniel Kahn Gillmor -Copyright 2016 Intevation GmbH +Copyright (C) 2016 Intevation GmbH Copyright (C) 2016 Anatoly madRat L. Berenblit diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/COPYING b/debian/pinentry-tqt/pinentry-tqt-1.2.1/COPYING similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/COPYING rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/COPYING diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/ChangeLog b/debian/pinentry-tqt/pinentry-tqt-1.2.1/ChangeLog similarity index 61% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/ChangeLog rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/ChangeLog index de4fbc53..4f1a0172 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/ChangeLog +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/ChangeLog @@ -1,3 +1,1132 @@ +2022-08-24 Werner Koch + + Release 1.2.1. + + commit 338961541fa9416937092d6e7720246b3cd7465a + + +2022-08-12 Andre Heinecke + + qt: Use Dialogs foregroundwindow code in confirm. + + commit 835b690cbd857eb699f24745ee13371b4d379683 + * qt/pinentryconfirm.cpp (PinentryConfirm): Minimize and raise on + start. + (showEvent): Do not call raiseWindow. + +2022-08-05 Ingo Klöcker + + qt4: Add recipe for container for testing build for Qt4. + + commit 0cb17ea14e533655e17c9daff1058a211ff9087e + * docker: New. + + qt4: Make it compile with Qt 4.8.7 and without C++11. + + commit 825819b754f50b79e238efc8c9613653315872bb + * qt4/main.cpp (qt_cmd_handler): Replace nullptr with NULL. + * qt4/pinentrydialog.cpp (PinEntryDialog::generatePin): Replace auto with + type name. + * qt4/pinlineedit.cpp (PinLineEdit::keyPressEvent): Replace + Qt::Key::Key_Backspace with Qt::Key_Backspace. + + qt,qt4: Separate build of pinentry with Qt5 and Qt4. + + commit 08a7391fc024530fa619fabbd16f900ad42108e6 + * Makefile.am (pinentry_qt4): New. + (SUBDIRS): Add pinentry_qt4. + * configure.ac: Add arg pinentry-qt4. Check for Qt4 libraries. + Substitute variables PINENTRY_QT4_CFLAGS, PINENTRY_QT4_LIBS, + PINENTRY_QT4_LDFLAGS, MOC4. + (BUILD_PINENTRY_QT4): New conditional. + (PINENTRY_QT4): New define. + * m4/qt.m4: Remove check for Qt4 libraries. + * m4/qt4.m4: New. + * qt4/Makefile.am: Check for BUILD_PINENTRY_QT4 instead of + BUILD_PINENTRY_QT. + (bin_PROGRAMS): Change pinentry-qt to pinentry-qt4. + (AM_CXXFLAGS): Change PINENTRY_QT_CFLAGS to PINENTRY_QT4_CFLAGS. + (pinentry_qt_LDADD): Renamed to pinentry_qt4_LDADD. + (pinentry_qt4_LDADD): Change PINENTRY_QT_LIBS to PINENTRY_QT4_LIBS. + (pinentry_qt_LDFLAGS): Renamed to pinentry_qt4_LDFLAGS. + (pinentry_qt4_LDFLAGS): Change PINENTRY_QT_LDFLAGS to + PINENTRY_QT4_LDFLAGS. + (pinentry_qt_SOURCES): Renamed to pinentry_qt4_SOURCES. + (nodist_pinentry_qt_SOURCES): Renamed to nodist_pinentry_qt4_SOURCES. + (.h.moc): Change MOC to MOC4. + + qt4: Add old copy of source code of pinentry-qt for building with Qt4. + + commit 70388f18958c5df7a45911e0fade23d19acb38e8 + * qt4: New. + +2022-07-21 NIIBE Yutaka + + Fix for modern Autoconf. + + commit 34709975debde7afc0927f30c8541c40af0cc481 + * m4/curses.m4: Use AS_HELP_STRING. Use AC_LINK_IFELSE. + * m4/qt.m4: Use AS_HELP_STRING. + + build: Update config.guess, config.sub, and config.rpath. + + commit e1cdfc733757b9cc801b628185f1404494d5000c + * build-aux/config.guess: Update from upstream. + * build-aux/config.sub: Ditto. + * build-aux/config.rpath: Update from gettext 0.21. + + build: Fix for internal secmem. + + commit 55353112cdc7a9fb84ad5d6d430e218ae81710b4 + * acinclude.m4 (GNUPG_CHECK_TYPEDEF): Remove. + (GNUPG_CHECK_MLOCK): Update from libgcrypt. + * configure.ac: Use AC_CHECK_TYPES for byte, ulong, and u64. + * secmem/secmem.c: Use HAVE_U64. + + build: Update gpg-error.m4. + + commit 4f26b1fa994c8d013fc7516e16e2f1488212e0e7 + * m4/gpg-error.m4: Update from libgpg-error. + +2022-06-01 NIIBE Yutaka + + Remove old code which makes sure NUL-termination of strings. + + commit 523a4f2d5d1c37df5ea7922f9545823afb3cb762 + * gnome3/pinentry-gnome3.c (create_prompt): Remove putting 0. + * gtk+-2/pinentry-gtk-2.c (changed_text_handler): Ditto. + * pinentry/pinentry.c (get_cmdline, pinentry_get_title): Ditto. + (my_strusage, write_status_error, cmd_getinfo): Ditto. + * w32/main.c (w32_strerror): Ditto. + + Remove USE_CAPABILITIES. + + commit 0d3be7b81eb1fea6b51144d2381eaa318a63e761 + * configure.ac: Remove --with-libcap. + * curses/Makefile.am, efl/Makefile.am: Remove LIBCAP. + * emacs/Makefile.am, fltk/Makefile.am: Ditto. + * gnome3/Makefile.am, gtk+-2/Makefile.am: Ditto. + * qt/Makefile.am, tqt/Makefile.am: Ditto. + * tty/Makefile.am: Ditto. + + secmem: Remove use of cap_set_proc. + + commit 88cad4621be36fa70596abb803252b844d1b5d42 + * secmem/secmem.c (lock_pool): Clean up. + +2022-06-01 Jakub Jelen + + pinentry: Remove dead code. + + commit 96771ae57e86756a2f079202cf069a1ce6cc4357 + * pinentry/pinentry.c (pinentry_get_title): Remove needless check for + null on static array + + pinentry: Terminate the buffer in the right place. + + commit cd753c8560cde013981466c7298e0376e27b6364 + * pinentry/pinentry.c (get_pid_name_for_uid): Terminate the buffer in + the right place. + + secmem: Do not pass negative values to strerr. + + commit c2e7cc560bdbcdaa9861ae8d37f28be5b342a64d + secmem/secmem.c (lock_pool): Pass the correct variable to strerr + +2022-05-25 NIIBE Yutaka + + Mark with ASSUAN_CONFIDENTIAL flag. + + commit c405add93a77f332273fa844bba36dade3f6422b + * pinentry/pinentry.c (cmd_getpin): Call assuan_begin_confidential + and assuan_end_confidential. + +2022-05-12 Ingo Klöcker + + qt: Update the cursor position when reformatting the text. + + commit 555cd94a2b2bb294a658a1c6ff9574f8a4ff3186 + * qt/pinlineedit.cpp (PinLineEdit::textEdited): Update cursor position + after reformatting the text. + +2022-03-24 NIIBE Yutaka + + w32,curses: Supply simple replacement for nl_langinfo. + + commit 41884436bec05997ffe21e93bcee604e53b9d120 + * pinentry/pinentry-curses.c [HAVE_W32_SYSTEM] (nl_langinfo): New. + + curses: Move pinentry_utf8_to_local/pinentry_local_to_utf8. + + commit 4612fd45f56963abf6052ef44a3575a1f98bf08a + * pinentry/pinentry-curses.c (pinentry_utf8_to_local): Now here. + (pinentry_local_to_utf8, lc_ctype_unknown_warning): Likewise. + * pinentry/pinentry.c: Moved to pinentry-curses.c. + (pinentry_get_pgmname): New. + + build,w32: Fix build on Windows. + + commit 9a8a38d28d36cf49b057fcd730de878acbd5fae3 + * Makefile.am: Add EXEEXT. + * secmem/secmem.c [HAVE_MMAP] (pool_is_mmapped): Only enabled with + HAVE_MMAP. + (init_pool): The variable PGSIZE is only used with HAVE_MMAP. + +2022-03-02 Ingo Klöcker + + build: Do not list the same files thrice in qt/Makefile.am. + + commit 5531e1c682382f42ef8f0545596a4fd3635e8484 + * qt/Makefile.am (CLEANFILES, nodist_pinentry_qt_SOURCES): Set to + $(BUILT_SOURCES). + + qt: Make text label in pinentry message box focusable. + + commit 42af54bece51f3c4c70eab0b2f67a03cc8951dff + * qt/main.cpp (qt_cmd_handler): Set text format of message box to + PlainText. Set text interaction flags of message box to + TextSelectableByMouse. + * qt/qt/pinentryconfirm.h (class PinentryConfirm): Derive from + QAccessible::ActivationObserver interface; add d'tor; override + focusNextPrevChild method of QMessageBox and accessibilityActiveChanged + method of QAccessible::ActivationObserver interface. + * qt/pinentryconfirm.cpp (messageBoxLabel): New. + (PinentryConfirm::PinentryConfirm): Register as activation observer. + (PinentryConfirm::~PinentryConfirm): New. + (PinentryConfirm::focusNextPrevChild): New. + (PinentryConfirm::accessibilityActiveChanged): New. + + qt: Extract function for selecting the text of a QLabel. + + commit b6370f87d247cfeb4d4161a248fa91661d08af37 + * qt/accessibility.h, qt/accessibility.cpp (selectLabelText): New. + * qt/pinentrydialog.cpp (TextLabel::focusInEvent): Use new function. + + qt: Modernize code. + + commit e7bcc0894e3a9e7cf5ae460af0269033c5b421cd + * qt/pinentryconfirm.h, qt/pinentryconfirm.cpp + (PinentryConfirm::PinentryConfirm): Remove timeout argument. Add flags + argument. Rename argument desc to text. + (PinentryConfirm::setTimeout, PinentryConfirm::timeout): New. + (PinentryConfirm::showEvent): Mark as override. + (class PinentryConfirm): Hold field _timer by value instead of by + pointer. Initialize _timed_out in-class. Use Q_SLOTS instead of slots. + * qt/pinentryconfirm.cpp (PinentryConfirm::PinentryConfirm): + Use QTimer::callOnTimeout() for setting the timeout handler. Do not + start the timer. + (PinentryConfirm::showEvent): Make timer a single-shot timer and start it. + * qt/main.cpp (qt_cmd_handler): Set timeout with new setter. + + qt: Fix reaction to Escape key and close button of window. + + commit 4435e9fa206f29b2fbc45e24b85c5604c4eefdbd + * qt/pinentryconfirm.cpp (PinentryConfirm::showEvent): Call the + overridden method of the direct super class. + + qt: Use better icon for signalling an error. + + commit 774e8a72cd1e10f6e81592fe8e47c13c3167cd77 + * qt/icons/data-error.svg: New. + * qt/icons/Makefile.am, qt/pinentryrc.qrc: Add new file. + * qt/pinentrydialog.h, qt/pinentrydialog.cpp (icon): Rename to + applicationIconPixmap. Change optional parameter to QIcon. + * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog, + PinEntryDialog::setDescription): Adjust to renaming of icon(). + (PinEntryDialog::setError): Use new icon as overlay for application icon. + * qt/main.cpp (qt_cmd_handler): Adjust to renaming of icon(). + +2022-03-02 Andre Heinecke + + qt: Add Makefile.am for icons subdir. + + commit 62efdca5e5cc354e53bbf4d39ca84031a9706086 + * qt/icons/Makefile.am: New. + +2022-03-01 Ingo Klöcker + + qt: Modernize code: Use in-class initializers for all members. + + commit 09e0111f02853c210b2106410eedf62734c1ec35 + * qt/pinentrydialog.h (class PinEntryDialog): Use in-class initializers + for all POD members. + * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Remove + superfluous member initializers. Flag argument 'name' as unused. Remove + superfluous initialization by assignment of _timed_out and _timer. + + qt: Modernize code: Use type-safe, new-style connects. + + commit d63355949f27787b131c34c8213666ea75a738ce + * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Use new-style + connects. + + qt: Fix giving focus to repeat field after Enter in first field. + + commit 8671cc814ca0c148bdfbd67816e211aa27462ca1 + * qt/pinentrydialog.h, qt/pinentrydialog.cpp + (PinEntryDialog::keyPressEvent): New. + * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Remove + connection to QLineEdit::returnPressed signal. + (PinEntryDialog::focusChanged): Remove code changing the default property + of the Ok button. + + qt: Fix compiler warning. + + commit 3157e27ebbd62a08a813d4f8e2dac7051e3b1059 + * qt/pinentrydialog.h (class PinEntryDialog): Mark showEvent as override. + + qt: Allow text of all labels to be selected with the mouse. + + commit c75350edce1b0580caacbe8a30d8e52885ae6366 + * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Set text + interaction flags of all text labels to TextSelectableByMouse. + (PinEntryDialog::accessibilityActiveChanged): Keep ClickFocus in focus + policy of labels. + + qt: Do not set an empty tool tip. + + commit e19dc862774e30206cb55662214273d068d9dc89 + qt/pinentrydialog.cpp (PinEntryDialog::setConstraintsOptions): Check + if options.longHint is empty. + + qt: Ensure visual feedback when a text label gets focus. + + commit 09f92e7123c22fb7354ad26a67b404f3cb4028a4 + qt/pinentrydialog.cpp (class TextLabel): New. + qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Set text format + of all text labels to PlainText. Change all text labels that shall be + able to receive focus from QLabel to TextLabel. + (PinEntryDialog::setFormattedPassphrase): Set text format of + mFormattedPassphraseHint to RichText. + + qt: Make text labels focusable if accessibility is active. + + commit 50ad2196d3f62a2fe078e4554b34e75b423374ee + qt/pinentrydialog.h (class PinEntryDialog): Derive from + QAccessible::ActivationObserver interface; add d'tor; override + accessibilityActiveChanged function of QAccessible::ActivationObserver + interface. + qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Register the + dialog as activation observer. + (PinEntryDialog::~PinEntryDialog): New. + (PinEntryDialog::accessibilityActiveChanged): New. + + qt: Create all widgets in tab order. + + commit dd9f765258230cad6704afb4fab6c3deb4a8de56 + * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Initialize + _have_quality_bar with member initializer; rework setup of UI + +2022-02-10 Andre Heinecke + + qt: Embed icons to avoid theme searches. + + commit 7d5c123f802abce11c711d57e8796d58d6ff1a16 + * m4/qt.m4: Check for RCC tool + * qt/qrc_pinentry.cpp: Remove not used file. + * qt/document-encrypt.png: Move to icons subfolder + * qt/icons/*.svg: New. + * qt/main.cpp: Use new path for window icon. + * qt/pinentryrc.qrc: Real ressource file. + * qt/pinentrydialog.cpp: Use embedded icons. + +2022-01-19 Daniel Kahn Gillmor + + avoid typo. + + commit 8b07ddf3460acd613db66f4c1230636da6ea191b + + +2022-01-17 Andre Heinecke + + qt: Install translator and translations. + + commit 8f239a2b133cae8ca9c1876c732d4e00d06c7d26 + * qt/qti18n.cpp: New. Based on KDE framework ki18n. + +2021-12-22 NIIBE Yutaka + + build: Fix configure.ac for newer autoconf/automake. + + commit ac338b99fd63ddfa8a7b6ae07933cfda6b108162 + * configure.ac (AC_CONFIG_HEADERS): Use it, instead of obsolete + AM_CONFIG_HEADER. + (AC_HEADER_STDC): Remove. + +2021-10-15 NIIBE Yutaka + + curses: Fix the previous commit. + + commit b713f31c5b042ff9d7b10c64bbc7ab02e195fbc9 + + +2021-10-13 NIIBE Yutaka + David Stes + + curses: Specify fg/bg when an extention of Ncurses is not available. + + commit d937ccfe4445394f0ca0da24fe46429a29ae48ce + * pinentry/pinentry-curses.c (dialog_run): Support original Curses. + +2021-09-30 NIIBE Yutaka + + curses: Handle an error at curses initialization. + + commit d22c49140b86880bbea2bb55542297984792b40a + * pinentry/pinentry-curses.c (dialog_run): Detect an error of newterm. + +2021-09-14 Ingo Klöcker + + qt: Support building with Qt 5.9. + + commit c68d80e23a860a06e7b22b6c0d72aed5d049faef + * qt/pinlineedit.cpp (class PinLineEdit::Private): Add field q. + (PinLineEdit::Private::Private): New. + (PinLineEdit::Private::copyToClipboard): Remove obsolete parameter. + Use new field q instead. + (PinLineEdit::Private::selectionEnd): New. + (PinLineEdit::PinLineEdit): Pass this to Private. + (PinLineEdit::setFormattedPassphrase): Use new selectionEnd. + (PinLineEdit::copy): Call copyToClipboard without parameter. + +2021-08-25 Werner Koch + + Release 1.2.0. + + commit aaf5d44f26e39f57bb47ae09dd3d575fcc51d9f5 + + +2021-08-18 Werner Koch + + Accept percent escaped formatted-passphrase-hint option. + + commit 008fb9337a52730b5533c6c3ddc93128f8c5395b + * pinentry/pinentry.c (option_handler): Unescape + formatted_passphrase_hint. + +2021-08-18 Ingo Klöcker + + qt: Change group size for passphrase formatting to 5. + + commit 5a6d70cf7d7bdd42505400bb1838c56812a22e56 + * qt/pinlineedit.cpp (static const int FormattedPassphraseGroupSize): + Set to 5. + +2021-08-16 Ingo Klöcker + + qt: Make sure the message box is centered on top of the pinentry. + + commit d285c2cb1f61df77427967ea96c1df02adcae8df + * qt/pinentrydialog.cpp (PinEntryDialog::checkConstraints): Set + parent of message box. + +2021-08-12 Ingo Klöcker + + qt: Make pinentry compile again with QT_NO_ACCESSIBILITY. + + commit 141b5776a90675877bdf63c17946170a7b20e5c6 + * qt/accessibility.cpp, qt/accessibility.h: New. + * qt/Makefile.am (pinentry_qt_SOURCES): Add new files. + * qt/main.cpp (qt_cmd_handler): Use new Accessibility helpers. + * qt/pinentryconfirm.cpp (PinentryConfirm::PinentryConfirm): Use new + Accessibility helpers. + * qt/pinentrydialog.cpp (PinEntryDialog::setDescription, + PinEntryDialog::setError, PinEntryDialog::setOkText, + PinEntryDialog::setCancelText, PinEntryDialog::setQualityBar, + PinEntryDialog::setGenpinLabel, PinEntryDialog::setCapsLockHint, + PinEntryDialog::setConstraintsOptions): Use new Accessibility helpers. + (PinEntryDialog::textChanged, PinEntryDialog::checkCapsLock): Guard + code using accessibility features with #ifndef QT_NO_ACCESSIBILITY. + + qt: Always make passphrase visible after generating it. + + commit e0b4e552638ed0d18a166a1337d9caa32744520e + * qt/pinentrydialog.cpp (PinEntryDialog::generatePin): Trigger + visibility action or check visibility checkbox. + + qt: Prevent possible crash when generating pin. + + commit 146fc0444b1fd30b85bac1f97607a9691164faa0 + * qt/pinentrydialog.cpp (PinEntryDialog::toggleVisibility): Check + visibility action for nullptr. + + qt: Change calculation of end of selection when enabling formatting. + + commit 1349fb7bcb5c84f3e0474ae209c5a058c12ff6e9 + * qt/pinlineedit.cpp (PinLineEdit::Private::formattedSelection): + Do not include trailing separator in selection. + + qt: Fix calculation of end of selection when disabling formatting. + + commit 1ae88d75321898901a692df95799a3c7e7b2f038 + * qt/pinlineedit.cpp (PinLineEdit::Private::unformattedSelection): + Fix calculation. + + qt: Remove checkbox for passphrase formatting. + + commit 06190adba5ac544bce77c4e5af75b44896850145 + * qt/main.cpp (qt_cmd_handler): Pass changed formatted passphrase + options to the dialog. + * qt/pinentrydialog.h (PinEntryDialog): Add field mFormatPassphrase. + Remove field mFormattedPassphraseCB. + (enum PinEntryDialog::FormattedPassphraseMode): Remove. + (struct PinEntryDialog::FormattedPassphraseOptions): Remove fields + mode, label, tooltip. Add field formatPassphrase. + * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Initialize + mFormatPassphrase. + (PinEntryDialog::setFormattedPassphrase): Set mFormatPassphrase. + Update widgets. + (PinEntryDialog::toggleFormattedPassphrase): Use mFormatPassphrase + instead of state of removed checkbox. + + Make passphrase formatting a simple flag. + + commit c42c6371fcf8ff2e856fa6059261617644e32a57 + * pinentry/pinentry.h (struct pinentry): Remove fields + formatted_passphrase_label, formatted_passphrase_tt. + * pinentry/pinentry.c (pinentry_reset): Remove free'ing of removed + fields. + (option_handler): Treat option "formatted-passphrase" as simple flag. + Remove options "formatted-passphrase-label", "formatted-passphrase-tt". + +2021-08-11 Ingo Klöcker + + qt: Add missing header files to sources. + + commit 990afda6a9a1633297882da4f9c255b60a1cc338 + * qt/Makefile.am (pinentry_qt_SOURCES): Add header files. + + qt: Add logging category. + + commit 3086964f103d19b035f8df95114905a82fb4eb89 + * qt/pinentry_debug.cpp, qt/pinentry_debug.h: New. + * qt/Makefile.am (pinentry_qt_SOURCES): Add new files. + * qt/main.cpp (main): Use logging category for debug messages. + + qt: Fix crash when setting repeat error. + + commit d71d890ec23e718f339dc5a3f141a3f04a38e020 + * qt/pinentrydialog.cpp (PinEntryDialog::setRepeatErrorText): Check + for nullptr. + + qt: Change type and title of "Passwords do not match" notification. + + commit b8f1d2cc4202b4a76b199c356f2957df8acc37f5 + * qt/pinentrydialog.cpp (PinEntryDialog::onAccept): Make notification + an "information". Use repeat error text as title. + + qt: Avoid HTML markup in accessible descriptions and names. + + commit 639725b68b8a57fdad610fbe570029f151b138cb + * qt/pinentrydialog.cpp (PinEntryDialog::setFormattedPassphrase, + PinEntryDialog::setConstraintsOptions): + Set accessible descriptions and accessible names without HTML markup. + + qt: Select generated password explicitly after giving focus to input. + + commit 70b14b29d53291245dd72281e2b94a43f5834328 + qt/pinentrydialog.cpp (PinEntryDialog::generatePin): Select text in + input field. + +2021-08-10 Ingo Klöcker + + qt: Make the generate password action accessible. + + commit 42c0d3ee935de67b5a261b1bd0fa62b1b519cbd4 + * qt/pinentrydialog.h (PinEntryDialog): Remove unused field mGenerateTT. + Remove field mGenerateActionEdit. Add field mGenerateButton. + * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Initialize + new field. Set up new push button. + (PinEntryDialog::setGenpinLabel): Set accessible name and update + visibility of new push button. + (PinEntryDialog::setGenpinLabel): Set tooltip of new push button. + (PinEntryDialog::setGenpinLabel): Update visibility of new push button. + (PinEntryDialog::generatePin): Focus password input field. + +2021-08-09 Ingo Klöcker + + qt: Improve accessibility when entering new password. + + commit 8acf47ea46a6c2aa1fc5254b81c6cf57ad506b9c + * qt/pinentrydialog.h (PinEntryDialog): Change type of field + mRepeatError from QString to QLabel*. + * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Initialize + mRepeatError. Add widget for "entered passwords do not match" + error. Do not make the Ok button the default button. Connect to + returnPressed signal of (first) password input field. + (PinEntryDialog::focusChanged): Update default state of Ok button. + (PinEntryDialog::textChanged): Remove code disabling the Ok button + and setting a tooltip. + (PinEntryDialog::setRepeatErrorText): Set text of "entered passwords + do not match" widget. + (PinEntryDialog::onAccept): Show error if entered passwords do not + match. + +2021-08-06 Andre Heinecke + + qt: Mask caps lock toggle bit on windows. + + commit e5d4738a76b44c4732ddb57b7a3f3e25001ef006 + * qt/capslock_win.cpp (capsLockState): Mask toggle bit. + +2021-08-02 Ingo Klöcker + + qt: Try harder to find out whether we are running in a GUI session. + + commit 956ee260f541790e0ecf01feb9d91f8f1617aa0e + * qt/main.cpp (main): Check more environment variables on Unix systems. + + Fix typo. + + commit 0735afa87e90c160bd3092605598c204b7dc38c3 + + + qt: Improve message shown if passphrase does not satisfy constraints. + + commit fefd730651b6881aba374c548ff253517063747a + qt/pinentrydialog.cpp (PinEntryDialog::checkConstraints): Use + property-based API of QMessageBox. + + qt: Ensure that malloced strings are free'd. + + commit 6191d4f06c8b46232e7d1bb3e12e3a3736fa6582 + * qt/main.cpp (qt_cmd_handler): Use unique_malloced_ptr for malloced + strings. + * qt/pinentrydialog.cpp (PinEntryDialog::generatePin, + PinEntryDialog::checkConstraints): Use unique_malloced_ptr for malloced + strings. + * qt/util.h: New. + + qt: Cancel timeout on more user interactions. + + commit f622321df5bbaedef882c3451307ff1727c4cd2d + * qt/pinentrydialog.h, qt/pinentrydialog.cpp + (PinentryDialog::cancelTimeout): New. + * qt/pinentrydialog.cpp (PinEntryDialog::onBackspace): Cancel timeout. + (PinEntryDialog::updateQuality, PinEntryDialog::textChanged): Cancel + timeout in PinEntryDialog::textChanged instead of + PinEntryDialog::updateQuality. + (PinEntryDialog::onAccept): Cancel timeout. + +2021-07-28 Ingo Klöcker + + qt: Check passphrase constraints before accepting passphrase. + + commit b0969ef692ac729c3e3d9d8d5f34579f2116438a + * qt/main.cpp (qt_cmd_handler): Pass constraints options to the dialog. + * qt/pinentrydialog.h (PinEntryDialog): Add struct ConstraintsOptions. + Add enum PassphraseCheckResult. Add fields mEnforceConstraints, + mConstraintsHint, mConstraintsErrorTitle. + * qt/pinentrydialog.h, qt/pinentrydialog.cpp + (PinEntryDialog::setConstraintsOptions, PinEntryDialog::onAccept, + PinEntryDialog::checkConstraints): New. + * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Initialize + new fields. Call onAccept() on click on Ok. Add widget for constraints + hint. + (PinEntryDialog::checkCapsLock): Constify variable. + + Add support for passphrase constraints options and checkpin inquiry. + + commit 8f5d4532fbd6e3ed460386bdcda2cdac066a0556 + * pinentry/pinentry.h (struct pinentry): Add fields constraints_enforce, + constraints_hint_short, constraints_hint_long, constraints_error_title. + * pinentry/pinentry.h, pinentry/pinentry.c (pinentry_inq_checkpin): + New. + * pinentry/pinentry.c (pinentry_reset): Take care of the new fields. + (do_unescape_inplace): New. + (option_handler): New options "constraints-enforce", + "constraints-hint-short", "constraints-hint-long", + "constraints-error-title". + +2021-07-26 Ingo Klöcker + + Mention Caps Lock warning in NEWS file. + + commit 134f75516d9511d7012e7dd3567e45b00ce4cb9a + + + qt: Add support for Caps Lock hint on Wayland. + + commit 3e803ebf640e73d9fb485fbb8b69b845a80fc695 + * configure.ac: Check for KF5WaylandClient. Add "-fpic" to CFLAGS. + Define PINENTRY_QT_WAYLAND if pinentry-qt should use KF5WaylandClient. + * qt/Makefile.am (BUILT_SOURCES, CLEANFILES, nodist_pinentry_qt_SOURCES): + Add capslock.moc. + (pinentry_qt_SOURCES): Add capslock.cpp. + * qt/capslock.cpp: New. + * qt/capslock.h (class CapsLockWatcher): New. + * qt/capslock_p.h: New. + * qt/capslock_unix.cpp (watchingWayland): New static. + (capsLockState): Log hint for using CapsLockWatcher on Wayland. + (CapsLockWatcher::Private::*): New. + * qt/pinentrydialog.cpp: Include config.h. + (PinEntryDialog::PinEntryDialog): Set up CapsLockWatcher. + + qt: Differentiate unknown Caps Lock state from off state. + + commit a074c90c78a6dfed3b7d8f32434bcf9f9f2b56dc + * qt/capslock.h (enum class LockState): New. + * qt/capslock.h, qt/capslock_unix.cpp, qt/capslock_win.cpp + (capsLockIsOn, capsLockState): Rename former to latter. Change return + type to LockState. + * qt/capslock_unix.cpp (capsLockState): Remove check for qApp. + * qt/pinentrydialog.cpp (checkCapsLock): Adapt to changed function name + and return type of capsLockIsOn/capsLockState. + +2021-07-22 Ingo Klöcker + + qt: Fix showing of pinentry window on Wayland. + + commit 9dd46926f8d50cca059bbf5ea7aa003b9199a05f + * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Skip the + minimize+raise trick on Wayland. + +2021-07-21 Ingo Klöcker + + qt: Show hint if Caps Lock is on. + + commit 78e4284e8d93502f301cf0c2eab384094680d444 + * configure.ac: Check for libX11. Define PINENTRY_QT_X11 if pinentry-qt + should use x11. + * m4/qt.m4: Check for Qt5X11Extras if libX11 is available. + * qt/Makefile.am (pinentry_qt_platform_SOURCES): New. + (pinentry_qt_SOURCES): Add pinentry_qt_platform_SOURCES. + * qt/capslock.h, qt/capslock_unix.cpp, qt/capslock_win.cpp: New. + * qt/main.cpp (qt_cmd_handler): Pass caps lock hint to the dialog. + * qt/pinentrydialog.cpp, qt/pinentrydialog.h + (PinEntryDialog::setCapsLockHint, PinEntryDialog::keyReleaseEvent, + PinEntryDialog::checkCapsLock): New. + * qt/pinentrydialog.h (PinEntryDialog): Use Q_SLOTS instead of slots. + Add field mCapsLockHint. + * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Initialize + new field. Add new widgets to GUI. Connect to applicationStateChanged() + signal. Call checkCapsLock(). + + Add support for Caps Lock hint. + + commit 672260f15bf88f7aadc88e5ed2717ed22abc510e + * pinentry/pinentry.h (struct pinentry): Add field 'default_capshint'. + * pinentry/pinentry.cpp (pinentry_reset): Take care of this field. + (option_handler): New option "default-capshint". + +2021-07-15 Ingo Klöcker + + Fix Assuan commands mentioned in comments. + + commit 621500c872585b60d2b31e2ce529c916b2f1d64c + pinentry/pinentry.h (struct pinentry): Fix comments. + + qt: Keep selection when enabling/disabling passphrase formatting. + + commit d875dba1cf87623d0d1240465cd43c660956eb2a + * qt/pinlineedit.cpp (struct Selection): New. + (PinLineEdit::Private::formattedSelection, + PinLineEdit::Private::formattedSelection): New. + (PinLineEdit::setFormattedPassphrase): Restore adjusted selection after + setting formatted/unformatted passphrase. + + qt: Enable formatted passphrase after generating passphrase. + + commit 64695a5e6f7bf59a1c161a60805dcfe5f3e5d720 + * qt/pinentrydialog.cpp (PinEntryDialog::generatePin): Enable formatted + passphrase option. + + qt: Select passphrase after generation. + + commit 5a5a4de1a32ebfc6364aedfe00702eee9374d63e + qt/pinentrydialog.cpp (PinEntryDialog::generatePin): Select text in + input field. + + qt: Enable passphrase generation. + + commit 742462d8a4d124936650901fe57b928a6518957c + qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Set icon for + generate action to a valid icon. + + qt: Show hint if passphrase is shown and formatting is enabled. + + commit 85b180f1b0148a07d51d244deb1a1245c9008cc3 + * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Initialize + new fields. + (PinEntryDialog::PinEntryDialog): Add new widgets to GUI. + (PinEntryDialog::setFormattedPassphrase): Set text of the hint. + (PinEntryDialog::toggleFormattedPassphrase): Show/hide hint and spacer + as needed. + * qt/pinentrydialog.h (PinEntryDialog): Add fields + mFormattedPassphraseHint, mFormattedPassphraseHintSpacer. + + qt: Copy passphrase without separators to clipboard. + + commit 8ad23d6f18cecf4fd0ba1f357a1845c36c9abc97 + * qt/pinlineedit.cpp, qt/pinlineedit.h (PinLineEdit::copy, + PinLineEdit::cut): New. + * qt/pinlineedit.cpp (PinLineEdit::Private::copyToClipboard): New. + (PinLineEdit::keyPressEvent): Handle more key sequences. + + qt: Support passphrase formatting. + + commit de70241567773a96195882002ce916e54a3639c1 + * qt/main.cpp (qt_cmd_handler): Pass formatted passphrase options to + the dialog. + * qt/pinentrydialog.cpp, qt/pinentrydialog.h + (PinEntryDialog::setFormattedPassphrase, + PinEntryDialog::toggleFormattedPassphrase): New. + * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Initialize + new field. Construct widgets in the order they appear on the screen. + Add widget for enabling passphrase formatting. + (PinEntryDialog::setPin, PinEntryDialog::generatePin): Use + PinLineEdit::setPin() instead of setText(). + (PinEntryDialog::pin, PinEntryDialog::textChanged, + PinEntryDialog::repeatedPin): Use PinLineEdit::pin() instead of text(). + (PinEntryDialog::toggleVisibility): Call toggleFormattedPassphrase(). + * qt/pinentrydialog.h (enum PinEntryDialog::FormattedPassphraseMode, + struct PinEntryDialog::FormattedPassphraseOptions): New. + * qt/pinentrydialog.h (PinEntryDialog): Change type of field mRepeat. + Add field mFormattedPassphraseCB. + * qt/pinlineedit.cpp, qt/pinlineedit.h (PinLineEdit::~PinLineEdit, + PinLineEdit::setPin, PinLineEdit::pin, + PinLineEdit::setFormattedPassphrase, PinLineEdit::textEdited, + class PinLineEdit::Private): New. + * qt/pinlineedit.cpp: Add static constants FormattedPassphraseGroupSize, + FormattedPassphraseSeparator. + (PinLineEdit::PinLineEdit): Initialize new field. Connect textEdited + signal. + * qt/pinlineedit.h (PinLineEdit::PinLineEdit): Add explicit specifier. + Make argument optional. + (PinLineEdit::keyPressEvent): Add override specifier. + (PinLineEdit): Make inherited QLineEdit::setText and QLineEdit::text + private. Add field d. + + Add support for formatted passphrase options. + + commit deb97f3eb65f64ccabffee74c037a3dca81a3f49 + * pinentry/pinentry.h (struct pinentry): Add fields + formatted_passphrase, formatted_passphrase_label, + formatted_passphrase_tt, formatted_passphrase_hint. + * pinentry/pinentry.c (pinentry_reset): Free the fields. + (option_handler): Add options "formatted-passphrase", + "formatted-passphrase-label", "formatted-passphrase-tt", + "formatted-passphrase-hint". + +2021-04-16 NIIBE Yutaka + Jakub Jelen + + tty: Fix error return paths and its resource leaks. + + commit 7f7fd8bcfd74919091cc318b27b8617a9ef2ac82 + * tty/pinentry-tty.c (tty_cmd_handler): Only call do_touch_file + on successful interaction. Fix closing file. + +2021-04-15 NIIBE Yutaka + + build: Update m4/gpg-error.m4. + + commit 6b697bd3e9f859cea338936894079241f2e15ffc + * m4/gpg-error.m4: Update from libgpg-error. + + Let autogen.sh create the VERSION file. + + commit 1c0c177fa5aee63bc2c12ba2074a337555254d99 + * autogen.sh: Update from Libgpg-error + * configure.ac: Use autogen.sh --find-version. + * Makefile.am (dist-hook): Do not create VERSION. + (EXTRA_DIST): Add VERSION. + * autogen.rc: Remove obsolete use of --with-gpg-error-prefix and + --with-libassuan-prefix, which is not needed any more. + +2021-04-14 Jakub Jelen + + core,emacs,tty,curses: Fix memory leaks, invalid accese, and mistake. + + commit a87d9e8f89f946a733c756c72bf5ec41e0a738b8 + * pinentry/pinentry-curses.c (dialog_create): Free NEW. + [HAVE_NCURSESW] (dialog_run): Free OLD_CTYPE on error. + * pinentry/pinentry.c (pinentry_inq_genpin): Free VALUE on error. + * tty/pinentry-tty.c (tty_cmd_handler): Don't access closed FDs. + * pinentry/pinentry-emacs.c (set_labels): Fix for ->default_cancel. + +2021-02-23 Damien Goutte-Gattat + + qt: Honor the --disable-rpath option. + + commit 6e8ad3150566d16a20cb3b54267191bcb0c14208 + * m4/qt.m4: Do not set rpath if --disable-rpath has been specified + at configure time. + +2021-02-19 Ingo Klöcker + + build: Make EFL libraries optional unless EFL is explicitly wanted. + + commit d09e7de3df65b22ae2e606e5c9e32dda260c8bef + * configure.ac: Build pinentry-efl if EFL libraries are found. If EFL + libraries are not found, then warn or error out depending on whether EFL + is explicitly requested or not. + +2021-02-18 Daniel Kahn Gillmor + + build: Simplfy use of pkg-config when testing for EFL. + + commit 19a18ba5fee049aac87b5114763095aaeb42430f + * configure.ac: use standard PKG_CONFIG macros when testing for EFL + libraries. + + GnuPG-Bug-Id: T5308 + +2021-02-16 Bertrand Jacquin + + efl: Convert pinentry description to markup. + + commit d6a3a048f172cf79869d1a0c0bc1e1c659e5dab7 + * efl/pinentry-efl.c (create_window): Convert all UI strings to markup + text. + +2021-02-13 Bertrand Jacquin + + efl: Ensure pinentry window is activated. + + commit 8fcbc9f40102d083db7a4acff2445e546ff5ec8b + * efl/pinentry-efl.c (create_window): Call elm_win_activate. + +2021-01-26 Andre Heinecke + + qt: Fix build against Qt4. + + commit 2859eddfb0c935d3f9eb9ccc1b42c121621123e9 + * qt/main.cpp: Ifdef out QWindow usage. + * qt/pinentrydialog.cpp: Only call the raiseWindow delayed when + using Qt5. + +2021-01-18 Damien Goutte-Gattat + + build: Fix make dist with newer Automake. + + commit b3e83681119e74a7a084310cd1ab14170cb549d5 + * qt/Makefile.am: Make sure .moc files are only built if needed. + * tqt/Makefile.am: Likewise. + +2020-12-21 NIIBE Yutaka + + gtk+-2: Avoid use of deprecated API. + + commit de1829f81f31df37912198dda4a0c31c75a79c01 + * gtk+-2/pinentry-gtk-2.c (create_window): Use + gtk_widget_set_can_default. + +2020-11-20 Andre Heinecke + + qt: Disable generate button for now. + + commit 749529cac2b050586518d8de145a55901d6158cd + * qt/pinentrydialog.cpp: Disable generate until we make it + prettier. + +2020-11-18 NIIBE Yutaka + + build: Update to newer autoconf constructs. + + commit 5c83f6314e3fe6cb78d92e353263ac519821c927 + * configure.ac: Use AC_USE_SYSTEM_EXTENSIONS instead of AC_GNU_SOURCE. + Use AS_HELP_STRING instead of AC_HELP_STRING. + * m4/gpg-error.m4: Update from libgpg-error. + * m4/libassuan.m4: Update from libassuan. + +2020-11-06 Andre Heinecke + + qt: Improve focus and frontness. + + commit a421ae8c4d2a0ce182e099e634e49ccdad454627 + * qt/pinentrydialog.cpp (raiseWindow): Use QtWindowsWindowFunctions + to get a more agressive bring to frontness. + (PinEntryDialog::PinEntryDialog): Start minimized. + + qt: Fix crash when generate icon was not found. + + commit cd2e69bfcf2630d7a61c4499b49c21790a1821d1 + * qt/pinentrydialog.cpp (PinEntryDialog::setGenpinLabel) + (PinEntryDialog::setGenpinTT): Check for NULL. + + qt: Silence deprecation warning. + + commit e4f1681550b1c42c062bc0e209947f13351cf02c + * qt/pinentrydialog.cpp (PinEntryDialog::setDescription): QString::null + is deprecated. + + qt: Add genpin suppport. + + commit 340e3ef6f4fc1136bc38691745aeb651cbf263a1 + * pinentry/pinentry.c (pinentry_inq_genpin): New. Based on + inq_quality. + (cmd_setgenpin_tt, cmd_setgenpin_label): New string helpers. + (register_commands): Register stringhelper commands. + * pinentry/pinentry.h (struct pinentry): Add new variables for + label and tooltips. + * qt/main.cpp (qt_cmd_handler): Set up labels. + * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Add + generate action if label is provided. + (PinEntryDialog::setGenpinLabel): New. + (PinEntryDialog::setGenpinTT): New. + (PinEntryDialog::textChanged): Hide generate action if text + is entered. + (PinEntryDialog::generatePin): Inquire generate. + (PinEntryDialog::toggleVisibility): Allow calls from other + senders. + +2020-05-08 Andre Heinecke + + curses: Fix build with ncurses 6.2. + + commit ae584040d14a4d7d6eed8be77844126130ef0118 + * pinentry/pinentry-curses.c (curses_cmd_handler): Use + renamed variable. + * pinentry/pinentry.c (pinentry_reset, pinentry_parse_opts) + (option_handler, cmd_getinfo) Use renamed variable. + * pinentry/pinentry.h (struct pinentry): Rename ttytype to + ttytype_l. + +2020-01-10 David Faure + + qt: Add rpath so the Qt libs are found at runtime. + + commit 971d1365ab16279bb33312583c320008e391f26e + * configure.ac: Add PINENTRY_QT_LDFLAGS variable. + * m4/qt.m4: Check qt libdir and add it to LDFLAGS. + * qt/Makefile.am: Use PINENTRY_QT_LDFLAGS. + +2019-12-05 NIIBE Yutaka + + build: Require newer GTK+2 (>= 2.12.0). + + commit 099b79fc2d6638598b94161e1162a55af8a95531 + * configure.ac: Check gtk+-2.0 >= 2.12.0. + + gtk: Remove support of old GTK+2 (< 2.12.0). + + commit edbd0d61b35fe7408cb879c0bd81daf42accb5ed + * gtk+-2/pinentry-gtk-2.c (tooltips): Remove + (create_window): Remove use of tooltips, but use + gtk_widget_set_tooltip_text. + +2019-11-14 Werner Koch + + core: Allow to query info about the emacn integration. + + commit 02a4f2fa0d8c8a63e72b9b9924b2817bfacce09a + * pinentry/pinentry-emacs.c (pinentry_emacs_status): New. + * pinentry/pinentry.c (cmd_getinfo): Add emacs info getinfo. + + emacs: Handle options before trying to conenct to emacs. + + commit f4b896ab75ba6536e78c56d377ad5ab6ff69b944 + * emacs/pinentry-emacs.c (main): Parse options first. + +2019-07-25 Andre Heinecke + + qt: Fix use of dangling pointer in QApplication. + + commit 0e2e53c8987d6f236aaef515eb005e8e86397fbc + * qt/main.cpp (main): Use a new variable for argc that stays + valid. + +2019-07-10 NIIBE Yutaka + + curses: Fix more. + + commit dad35d65f05eb1c15589a7e4755dcae6aed2d6cf + * pinentry/pinentry-curses.c (dialog_create): Reverting was not + enough. Correctly check with the character at len - 1. + +2019-07-09 NIIBE Yutaka + + curses: Fix handling of newline in description. + + commit a03f3920714830b1f09b48f41be5a0aa8177f11a + * pinentry/pinentry-curses.c (collect_line): LEN including the + newline/null character. + (dialog_create): Fix the caluculation. + + curses: Fix width calculation. + + commit 67a7cfa12d1525097d9822124c9bd05207204a60 + * pinentry/pinentry-curses.c (collect_line): Fix caluculation + where skipping the first character and adding 1 column. + + curses: Fix calculation of columns for CJK text. + + commit 9298cca67742df946efb9ba268a04904339454f1 + * pinentry/pinentry-curses.c (STRWIDTH): New. + (collect_line): Let return value for columns width. + LEN minus one. + (dialog_create): Calculate for the columns with STRWIDTH. + +2019-06-27 NIIBE Yutaka + + tty: Confirmation is not by line edit mode. + + commit f6e84ce0a34c5314999ac9af2f1d360c157b1ed5 + * tty/pinentry-tty.c (terminal_setup): Support single char mode. + + tty: Support line editing by system. + + commit 531b92300c58aee665b55d1dffa7ffb4027cba20 + * tty/pinentry-tty.c (terminal_setup): Not cbreak, but only no echo. + (confirm, read_password): Don't do editing here. + [HAVE_DOSISH_SYSTEM] (confirm, read_password): Return + GPG_ERR_FULLY_CANCELED when EINTR and it's not timed out. + (tty_cmd_handler): Call sigaction for SIGINT. + + Exit the loop on an error with GPG_ERR_FULLY_CANCELED. + + commit b176a8ac0dcd682549084cbf02876a550226d722 + * pinentry/pinentry.c (cmd_getpin, cmd_confirm): Set + ASSUAN_FORCE_CLOSE flag when GPG_ERR_FULLY_CANCELED. + + tty: Factor out terminal setup into tty_cmd_handler. + + commit 89add7b733138d7fe86d348be57873936cab3112 + * tty/pinentry-tty.c (terminal_save, terminal_restore): New. + (terminal_setup): Rename from cbreak. + (confirm, read_password): Don't touch terminal setting here. + (tty_cmd_handler): Do terminal setting/restore here. + +2019-06-10 Ineiev + + tty: Show supplied message when using default. + + commit 95743b2cd7361aab10c5eb4f430928d09ce9c214 + * tty/pinentry-tty.c (fputs_highlighted): New function. + (button): Display the supplied text when falling back to default; the + default text is shown in braces and provides the accelerator. + +2019-05-13 NIIBE Yutaka + + build: Update m4/iconv.m4. + + commit 42c32e08d5a428627e5f74e0ab2bf4102e511b40 + * m4/iconv.m4: Update from gettext 0.20.1. + +2019-04-17 Daniel Kahn Gillmor + + gnome3: correctly detect when no GNOME screenlock exists. + + commit f74c4673e6b60508012c14f7574dbc3215345210 + * gnome3/pinentry-gnome3.c (pe_gnome_screen_locked): skip + G_IO_ERROR_IS_DIRECTORY responses, not G_IO_ERROR_TIMED_OUT responses + from dbus. + +2019-04-17 Zephaniah E. Loss-Cutler-Hull + + gnome3: Use the default dbus timeout when checking for screenlock. + + commit 65d2c6d5911ab04b19f953153d01116198cc4cb8 + * gnome3/pinentry-gnome3.c (pe_gnome_screen_locked): use default dbus + timeout instead of 0ms. + +2019-03-04 NIIBE Yutaka + + Update gpg-error.m4 and libassuan.m4 from corresponding repos. + + commit 6ddcc92cf6e9a904a5c98982709edeb42034843d + * m4/gpg-error.m4: Update. + * m4/libassuan.m4: Update. + +2019-02-10 Damien Goutte-Gattat + + build: Add --disable-doc option. + + commit 8f8d907f53b2749642ee273e2cec28f7d68f26ff + * configure.ac (BUILD_DOC): Add new am_conditional. + * Makefile.am: Skip doc subdir if BUILD_DOC is not set. + +2019-02-10 Damien Goutte-Gattat + Michael Bäuerle + + fltk: Handle '_' in button labels as keyboard shortcuts. + + commit 21f0883059c84de7145d402877cd178fcfed44e3 + * fltk/main.cxx (convert_accel_utf8): New method. + (fltk_cmd_handler): Calls previous method to escape button labels. + +2019-02-10 Daniel Kahn Gillmor + + fltk: Fix formatting escapes. + + commit a60e4f8142159b3e2df10d8d725b9680be5b4616 + * fltk/main.cxx (fltk_cmd_handler): Fix calls to fl_message() + and fl_choice() functions. + +2018-08-22 Damien Goutte-Gattat via Gnupg-devel + + Disallow echo disabling when prompting for a PIN. + + commit d0eaec8ef60be9b4d1aa5993c11d261a35202a2e + * gtk+-2/pinentry-gtk-2.c (create_window): Do not setup + the backspace handler when prompting for a PIN. + callback only when not prompting for a PIN. + * qt/pinentrydialog.h (_got_input): Rename field to + _disable_echo_allowed. + * qt/pinentrydialog.cpp (PinEntryDialog::setPrompt): Disallow + echo disabling when prompting for a PIN. + * tqt/pinentrydialog.h (_got_input): Rename field to + _disable_echo_allowed. + * tqt/pinentrydialog.cpp (PinEntryDialog::setPrompt): Disallow + echo disabling when prompting for a PIN. + +2018-08-15 Damien Goutte-Gattat via Gnupg-devel + + tqt: Disable echoing if backspace is pressed first. + + commit 0fb3392f61569cb93e52c81465bc8e4636bca3b7 + * tqt/secqlineedit.h (backspacePressed): New signal. + * tqt/secqinternal.cpp (SecTQLineEdit::backspace): Emit new signal. + * tqt/pinentrydialog.h (_got_input): New member field. + (onBackspace): New slot. + * tqt/pinentrydialog.cpp (onBackspace): New slot. + (PinEntryDialog::updateQuality): Prevent echo disabling as soon as + the text has been edited. + + qt: Disable echoing if backspace is pressed first. + + commit a75786a11666a080cae67f6e386163fcf93ff233 + * qt/pinlineedit.h: New file. + * qt/pinlineedit.cpp: New file. + * qt/Makefile.am: Add new source files. + * qt/pinentrydialog.cpp (PinEntryDialog): New member _got_input; + Type of _edit member changed to PinLineEdit. + (PinEntryDialog::onBackspace): New slot. + + gtk: Disable echoing if backspace is pressed first. + + commit 4b06bc6009011a84e5e8d4da2f01659f35e5a2d5 + * gtk+-2/pinentry-gtk-2.c (backspace_handler): New callback. + (create_window): Attach previous callback to "backspace" signal. + + curses: Disable echoing if backspace is pressed first. + + commit fd22facabd784586f72eeecc72830620a534929c + * pinentry/pinentry-curses.c (struct dialog): New fields got_input, + no_echo. + (dialog_input): Disable echoing and display instead "[no echo]" if + the backspace key is pressed first. + +2018-06-13 Werner Koch + + core: Add info about tty mode etc to 'getinfo ttyinfo' + + commit 779b8e6df7d2678d40bc61ba9e9ff35324a40d03 + * configure.ac: Check for 'stat'. + * pinentry/pinentry.c: Include types.h and stat.h. + (device_stat_string): New. + (cmd_getinfo): Print more info. + +2018-05-29 William L. Thomson Jr + + efl: Add an EFL-based pinentry. + + commit 948105b7a34ec9a9e5479d376b7c86bafee50a01 + * NEWS: Update. + * Makefile.am: Add new efl subdirectory. + * configure.ac: Add --enable-pinentry-efl option. + * efl/Makefile.am: New file. + * efl/pinentry-efl.c: New file. + +2018-03-05 Andre Heinecke + + qt: Try again to fix Windows Window Management. + + commit fa817f00363cdc305728ece6139d76361c77f361 + * qt/pinentrydialog.cpp (raiseWindow): Activate Window and + disable windows hacks. + (PinEntryDialog::PinEntryDialog): Delay setFocus after the + event loop returns. + +2018-03-01 Andre Heinecke + + qt: Renable Windows Foreground Window hacks. + + commit 141fd941a58f70692cb6244f011e54b005d2195c + * qt/main.cpp, qt/pinentryconfirm.cpp: Use raiseWindow again. + * qt/pinentrydialog.cpp: Renable Foreground Window hacks. + +2018-02-28 Andre Heinecke + + qt: Clean up foreground window code. + + commit 84d473f5c323a3001374b0db736af9be4e3478a3 + * qt/main.cpp (ForeignWidget): Remove. This did nothing + with Qt 5. + (setup_foreground_window): New helper to set parent and + window flags. + (qt_cmd_handler): Use setup_foreground_window. + * qt/pinentrydialog.cpp: Disable Windows API hacks. + +2018-02-06 Daniel Kahn Gillmor + + tqt: use UTF-8 instead of ISO-8859-1. + + commit 822c66815b5072281563fc4faa055493d20d660d + + 2017-12-03 Werner Koch Release 1.1.0. diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/ChangeLog-old b/debian/pinentry-tqt/pinentry-tqt-1.2.1/ChangeLog-old similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/ChangeLog-old rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/ChangeLog-old diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/INSTALL b/debian/pinentry-tqt/pinentry-tqt-1.2.1/INSTALL similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/INSTALL rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/INSTALL diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/Makefile.am b/debian/pinentry-tqt/pinentry-tqt-1.2.1/Makefile.am similarity index 88% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/Makefile.am rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/Makefile.am index 8c8b8e57..bbe6ee3e 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/Makefile.am +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/Makefile.am @@ -24,7 +24,7 @@ DISTCHECK_CONFIGURE_FLAGS = --disable-pinentry-qt --enable-pinentry-emacs GITLOG_TO_CHANGELOG=gitlog-to-changelog -EXTRA_DIST = autogen.sh autogen.rc README.GIT ChangeLog-old \ +EXTRA_DIST = autogen.sh autogen.rc README.GIT ChangeLog-old VERSION \ build-aux/gitlog-to-changelog \ build-aux/git-log-fix build-aux/git-log-footer @@ -64,6 +64,12 @@ else pinentry_qt = endif +if BUILD_PINENTRY_QT4 +pinentry_qt4 = qt4 +else +pinentry_qt4 = +endif + if BUILD_PINENTRY_TQT pinentry_tqt = tqt else @@ -82,10 +88,22 @@ else pinentry_fltk = endif +if BUILD_PINENTRY_EFL +pinentry_efl = efl +else +pinentry_efl = +endif + +if BUILD_DOC +doc = doc +else +doc = +endif + SUBDIRS = m4 secmem pinentry ${pinentry_curses} ${pinentry_tty} \ ${pinentry_emacs} ${pinentry_gtk_2} ${pinentry_gnome_3} \ - ${pinentry_qt} ${pinentry_tqt} ${pinentry_w32} \ - ${pinentry_fltk} doc + ${pinentry_qt} ${pinentry_qt4} ${pinentry_tqt} ${pinentry_w32} \ + ${pinentry_fltk} ${pinentry_efl} ${doc} install-exec-local: @@ -95,11 +113,10 @@ install-exec-local: done (cd $(DESTDIR)$(bindir); \ - rm -f pinentry; \ - $(LN_S) $(PINENTRY_DEFAULT)$(EXEEXT) pinentry) + rm -f pinentry$(EXEEXT); \ + $(LN_S) $(PINENTRY_DEFAULT)$(EXEEXT) pinentry$(EXEEXT)) dist-hook: gen-ChangeLog - echo "$(VERSION)" > $(distdir)/VERSION distcheck-hook: set -e; ( \ diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/Makefile.in b/debian/pinentry-tqt/pinentry-tqt-1.2.1/Makefile.in similarity index 87% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/Makefile.in rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/Makefile.in index 9bc02d4c..5e0ddb80 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/Makefile.in +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -33,7 +33,17 @@ # along with this program; if not, see . # SPDX-License-Identifier: GPL-2.0+ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -97,28 +107,16 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = . -DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \ - $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/configure $(am__configure_deps) \ - $(srcdir)/config.h.in COPYING THANKS TODO build-aux/compile \ - build-aux/config.guess build-aux/config.rpath \ - build-aux/config.sub depcomp build-aux/depcomp install-sh \ - build-aux/install-sh build-aux/mdate-sh missing \ - build-aux/missing mkinstalldirs build-aux/texinfo.tex \ - $(top_srcdir)/build-aux/compile \ - $(top_srcdir)/build-aux/config.guess \ - $(top_srcdir)/build-aux/config.rpath \ - $(top_srcdir)/build-aux/config.sub \ - $(top_srcdir)/build-aux/install-sh \ - $(top_srcdir)/build-aux/missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/curses.m4 \ $(top_srcdir)/m4/gpg-error.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/libassuan.m4 $(top_srcdir)/m4/pkg.m4 \ - $(top_srcdir)/m4/qt.m4 $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/qt4.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ + $(am__configure_deps) $(am__DIST_COMMON) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d @@ -159,9 +157,9 @@ am__recursive_targets = \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - cscope distdir dist dist-all distcheck -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ - $(LISP)config.h.in + cscope distdir distdir-am dist dist-all distcheck +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \ + config.h.in # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. @@ -182,7 +180,19 @@ ETAGS = etags CTAGS = ctags CSCOPE = cscope DIST_SUBDIRS = m4 secmem pinentry curses tty emacs gtk+-2 gnome3 qt \ - tqt w32 fltk doc + qt4 tqt w32 fltk efl doc +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \ + $(top_srcdir)/build-aux/compile \ + $(top_srcdir)/build-aux/config.guess \ + $(top_srcdir)/build-aux/config.rpath \ + $(top_srcdir)/build-aux/config.sub \ + $(top_srcdir)/build-aux/install-sh \ + $(top_srcdir)/build-aux/missing AUTHORS COPYING ChangeLog \ + INSTALL NEWS README THANKS TODO build-aux/compile \ + build-aux/config.guess build-aux/config.rpath \ + build-aux/config.sub build-aux/depcomp build-aux/install-sh \ + build-aux/mdate-sh build-aux/missing build-aux/texinfo.tex \ + depcomp install-sh missing mkinstalldirs DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) @@ -221,6 +231,8 @@ am__relativize = \ GZIP_ENV = --best DIST_ARCHIVES = $(distdir).tar.bz2 DIST_TARGETS = dist-bzip2 +# Exists only to be overridden by the user if desired. +AM_DISTCHECK_DVI_TARGET = dvi distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' @@ -248,6 +260,8 @@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ +EFL_CFLAGS = @EFL_CFLAGS@ +EFL_LIBS = @EFL_LIBS@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FLTKCFLAGS = @FLTKCFLAGS@ @@ -257,6 +271,7 @@ FLTK_CONFIG = @FLTK_CONFIG@ GITLOG_TO_CHANGELOG = gitlog-to-changelog GNOME3_CFLAGS = @GNOME3_CFLAGS@ GNOME3_LIBS = @GNOME3_LIBS@ +GPGRT_CONFIG = @GPGRT_CONFIG@ GPG_ERROR_CFLAGS = @GPG_ERROR_CFLAGS@ GPG_ERROR_CONFIG = @GPG_ERROR_CONFIG@ GPG_ERROR_LIBS = @GPG_ERROR_LIBS@ @@ -270,11 +285,12 @@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KF5WAYLANDCLIENT_CFLAGS = @KF5WAYLANDCLIENT_CFLAGS@ +KF5WAYLANDCLIENT_LIBS = @KF5WAYLANDCLIENT_LIBS@ LDFLAGS = @LDFLAGS@ LIBASSUAN_CFLAGS = @LIBASSUAN_CFLAGS@ LIBASSUAN_CONFIG = @LIBASSUAN_CONFIG@ LIBASSUAN_LIBS = @LIBASSUAN_LIBS@ -LIBCAP = @LIBCAP@ LIBCURSES = @LIBCURSES@ LIBICONV = @LIBICONV@ LIBNCURSES = @LIBNCURSES@ @@ -283,6 +299,8 @@ LIBS = @LIBS@ LIBSECRET_CFLAGS = @LIBSECRET_CFLAGS@ LIBSECRET_LIBS = @LIBSECRET_LIBS@ LIBTERMCAP = @LIBTERMCAP@ +LIBX11_CFLAGS = @LIBX11_CFLAGS@ +LIBX11_LIBS = @LIBX11_LIBS@ LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ @@ -291,6 +309,8 @@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ MOC2 = @MOC2@ +MOC4 = @MOC4@ +MOC42 = @MOC42@ NCURSES_CFLAGS = @NCURSES_CFLAGS@ NCURSES_INCLUDE = @NCURSES_INCLUDE@ NCURSES_LIBS = @NCURSES_LIBS@ @@ -304,16 +324,23 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PINENTRY_DEFAULT = @PINENTRY_DEFAULT@ +PINENTRY_QT4_CFLAGS = @PINENTRY_QT4_CFLAGS@ +PINENTRY_QT4_LDFLAGS = @PINENTRY_QT4_LDFLAGS@ +PINENTRY_QT4_LIBS = @PINENTRY_QT4_LIBS@ PINENTRY_QT_CFLAGS = @PINENTRY_QT_CFLAGS@ +PINENTRY_QT_LDFLAGS = @PINENTRY_QT_LDFLAGS@ PINENTRY_QT_LIBS = @PINENTRY_QT_LIBS@ PINENTRY_QT_REQUIRE_CPP11_CFLAGS = @PINENTRY_QT_REQUIRE_CPP11_CFLAGS@ PINENTRY_QT_REQUIRE_CPP11_LIBS = @PINENTRY_QT_REQUIRE_CPP11_LIBS@ +PINENTRY_QT_X11_EXTRAS_CFLAGS = @PINENTRY_QT_X11_EXTRAS_CFLAGS@ +PINENTRY_QT_X11_EXTRAS_LIBS = @PINENTRY_QT_X11_EXTRAS_LIBS@ PINENTRY_TQT_CFLAGS = @PINENTRY_TQT_CFLAGS@ PINENTRY_TQT_LIBS = @PINENTRY_TQT_LIBS@ PKG_CONFIG = @PKG_CONFIG@ QTCHOOSER = @QTCHOOSER@ RANLIB = @RANLIB@ -SETCAP = @SETCAP@ +RCC = @RCC@ +RCC2 = @RCC2@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ @@ -363,6 +390,7 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -373,7 +401,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ ACLOCAL_AMFLAGS = -I m4 DISTCHECK_CONFIGURE_FLAGS = --disable-pinentry-qt --enable-pinentry-emacs -EXTRA_DIST = autogen.sh autogen.rc README.GIT ChangeLog-old \ +EXTRA_DIST = autogen.sh autogen.rc README.GIT ChangeLog-old VERSION \ build-aux/gitlog-to-changelog \ build-aux/git-log-fix build-aux/git-log-footer @@ -389,16 +417,22 @@ EXTRA_DIST = autogen.sh autogen.rc README.GIT ChangeLog-old \ @BUILD_PINENTRY_GNOME_3_TRUE@pinentry_gnome_3 = gnome3 @BUILD_PINENTRY_QT_FALSE@pinentry_qt = @BUILD_PINENTRY_QT_TRUE@pinentry_qt = qt +@BUILD_PINENTRY_QT4_FALSE@pinentry_qt4 = +@BUILD_PINENTRY_QT4_TRUE@pinentry_qt4 = qt4 @BUILD_PINENTRY_TQT_FALSE@pinentry_tqt = @BUILD_PINENTRY_TQT_TRUE@pinentry_tqt = tqt @BUILD_PINENTRY_W32_FALSE@pinentry_w32 = @BUILD_PINENTRY_W32_TRUE@pinentry_w32 = w32 @BUILD_PINENTRY_FLTK_FALSE@pinentry_fltk = @BUILD_PINENTRY_FLTK_TRUE@pinentry_fltk = fltk +@BUILD_PINENTRY_EFL_FALSE@pinentry_efl = +@BUILD_PINENTRY_EFL_TRUE@pinentry_efl = efl +@BUILD_DOC_FALSE@doc = +@BUILD_DOC_TRUE@doc = doc SUBDIRS = m4 secmem pinentry ${pinentry_curses} ${pinentry_tty} \ ${pinentry_emacs} ${pinentry_gtk_2} ${pinentry_gnome_3} \ - ${pinentry_qt} ${pinentry_tqt} ${pinentry_w32} \ - ${pinentry_fltk} doc + ${pinentry_qt} ${pinentry_qt4} ${pinentry_tqt} ${pinentry_w32} \ + ${pinentry_fltk} ${pinentry_efl} ${doc} gen_start_date = 2012-08-08T00:00:00 all: config.h @@ -420,15 +454,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -561,7 +594,10 @@ distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @@ -629,7 +665,7 @@ distdir: $(DISTFILES) ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz $(am__post_remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 @@ -643,18 +679,22 @@ dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) +dist-zstd: distdir + tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst + $(am__post_remove_distdir) + dist-tarZ: distdir - @echo WARNING: "Support for shar distribution archives is" \ - "deprecated." >&2 + @echo WARNING: "Support for distribution archives compressed with" \ + "legacy program 'compress' is deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir - @echo WARNING: "Support for distribution archives compressed with" \ - "legacy program 'compress' is deprecated." >&2 + @echo WARNING: "Support for shar distribution archives is" \ + "deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 - shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz $(am__post_remove_distdir) dist-zip: distdir @@ -672,7 +712,7 @@ dist dist-all: distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ - GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ + eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lz*) \ @@ -682,26 +722,28 @@ distcheck: dist *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ - GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ + eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ + *.tar.zst*) \ + zstd -dc $(distdir).tar.zst | $(am__untar) ;;\ esac chmod -R a-w $(distdir) chmod u+w $(distdir) - mkdir $(distdir)/_build $(distdir)/_inst + mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && $(MAKE) $(AM_MAKEFLAGS) distcheck-hook \ && am__cwd=`pwd` \ - && $(am__cd) $(distdir)/_build \ - && ../configure \ + && $(am__cd) $(distdir)/_build/sub \ + && ../../configure \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ - --srcdir=.. --prefix="$$dc_install_base" \ + --srcdir=../.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ @@ -862,17 +904,19 @@ uninstall-am: am--refresh check check-am clean clean-cscope clean-generic \ cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \ dist-gzip dist-hook dist-lzip dist-shar dist-tarZ dist-xz \ - dist-zip distcheck distclean distclean-generic distclean-hdr \ - distclean-tags distcleancheck distdir distuninstallcheck dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-exec-local install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - installdirs-am maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ - tags-am uninstall uninstall-am + dist-zip dist-zstd distcheck distclean distclean-generic \ + distclean-hdr distclean-tags distcleancheck distdir \ + distuninstallcheck dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-exec-local \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ + pdf-am ps ps-am tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile install-exec-local: @@ -882,11 +926,10 @@ install-exec-local: done (cd $(DESTDIR)$(bindir); \ - rm -f pinentry; \ - $(LN_S) $(PINENTRY_DEFAULT)$(EXEEXT) pinentry) + rm -f pinentry$(EXEEXT); \ + $(LN_S) $(PINENTRY_DEFAULT)$(EXEEXT) pinentry$(EXEEXT)) dist-hook: gen-ChangeLog - echo "$(VERSION)" > $(distdir)/VERSION distcheck-hook: set -e; ( \ diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/NEWS b/debian/pinentry-tqt/pinentry-tqt-1.2.1/NEWS similarity index 84% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/NEWS rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/NEWS index 116c86ac..c080b34e 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/NEWS +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/NEWS @@ -1,3 +1,69 @@ +Noteworthy changes in version 1.2.1 (2022-08-24) +------------------------------------------------ + + * qt: Support building with Qt 5.9. [T5592] + + * curses: Handle an error at curses initialization. [T5623] + + * curses: Specify fg/bg when an extention of Ncurses is not available. + [T5631] + + * qt: Fix translation of context menu entries. [T5786] + + * qt: Further improve the accessibility. [T5863] + + * qt: Fix moving focus to second input field when pressing Enter in + first input field. [T5866] + + * qt: Update the cursor position when reformatting the text. [T5972] + + * qt: Use foreground raising code also with the confirm prompt. + [T6134] + + * Make the legacy qt4 version build again. [T5569] + + * Make sure an entered PIN is always cleared from memory. [T5977] + + * Build fixes for Windows. [T5893] + + +Noteworthy changes in version 1.2.0 (2021-08-25) +------------------------------------------------ + + * qt: Show a warning if Caps Lock is on on Windows, X11 (requires + libX11 and Qt5X11Extras), and Wayland (requires KF5WaylandClient). + [T4950] + + * qt: Support password formatting. This makes generated passwords + easier to transcript. [T5517] + + * qt: Fix showing of pinentry window on Wayland. [T5528] + + * qt: Check passphrase constraints before accepting passphrase if + passphrase constraints are requested to be enforced. [T5532] + + * qt: Improve detection of running in a GUI session. [T3659] + + * qt: Improve accessibility when entering new password. [T5543] + + Release-info: https://dev.gnupg.org/T5566 + + +Noteworthy changes in version 1.1.1 (2021-01-21) +------------------------------------------------ + + * A EFL-based pinentry has been contributed. + + * Disable echoing in backspace key is pressed first + (GTK, Qt, TQt, and ncurses pinentries). + + * Support line editing in TTY pinentry. + + * Remove support for old GTK+2 (< 2.12.0). + + * Various minor fixes. + + Noteworthy changes in version 1.1.0 (2017-12-03) ------------------------------------------------ diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/README b/debian/pinentry-tqt/pinentry-tqt-1.2.1/README similarity index 95% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/README rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/README index 981d653d..d946ff37 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/README +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/README @@ -14,6 +14,9 @@ GTK+ V2.0 --enable-pinentry-gtk2 Gimp Toolkit Library, Version 2.0 eg. libgtk-x11-2.0 and libglib-2.0 GNOME --enable-pinentry-gnome GNOME Qt --enable-pinentry-qt Qt (> 4.4.0) +TQt --enable-pinentry-tqt Trinity Qt +Enlightenment --enable-pinentry-efl EFL (>= 1.18) +FLTK --enable-pinentry-fltk Fast Light Toolkit (>= 1.3) Curses --enable-pinentry-curses Curses library, for example ncurses TTY --enable-pinentry-tty Simple TTY version, no dependencies diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/README.GIT b/debian/pinentry-tqt/pinentry-tqt-1.2.1/README.GIT similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/README.GIT rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/README.GIT diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/THANKS b/debian/pinentry-tqt/pinentry-tqt-1.2.1/THANKS similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/THANKS rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/THANKS diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/TODO b/debian/pinentry-tqt/pinentry-tqt-1.2.1/TODO similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/TODO rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/TODO diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/VERSION b/debian/pinentry-tqt/pinentry-tqt-1.2.1/VERSION new file mode 100644 index 00000000..6085e946 --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/VERSION @@ -0,0 +1 @@ +1.2.1 diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/acinclude.m4 b/debian/pinentry-tqt/pinentry-tqt-1.2.1/acinclude.m4 new file mode 100644 index 00000000..20e64bce --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/acinclude.m4 @@ -0,0 +1,109 @@ +dnl Autoconf macros used by PINENTRY +dnl +dnl Copyright (C) 2002, 2022 g10 Code GmbH +dnl +dnl +###################################################################### +# Check whether mlock is broken (hpux 10.20 raises a SIGBUS if mlock +# is not called from uid 0 (not tested whether uid 0 works) +# For DECs Tru64 we have also to check whether mlock is in librt +# mlock is there a macro using memlk() +###################################################################### +dnl GNUPG_CHECK_MLOCK +dnl +define(GNUPG_CHECK_MLOCK, + [ AC_CHECK_FUNCS(mlock) + if test "$ac_cv_func_mlock" = "no"; then + AC_CHECK_HEADERS(sys/mman.h) + if test "$ac_cv_header_sys_mman_h" = "yes"; then + # Add librt to LIBS: + AC_CHECK_LIB(rt, memlk) + AC_CACHE_CHECK([whether mlock is in sys/mman.h], + gnupg_cv_mlock_is_in_sys_mman, + [AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[ + #include + #ifdef HAVE_SYS_MMAN_H + #include + #endif + ]], [[ +int i; + +/* glibc defines this for functions which it implements + * to always fail with ENOSYS. Some functions are actually + * named something starting with __ and the normal name + * is an alias. */ +#if defined (__stub_mlock) || defined (__stub___mlock) +choke me +#else +mlock(&i, 4); +#endif +; return 0; + ]])], + gnupg_cv_mlock_is_in_sys_mman=yes, + gnupg_cv_mlock_is_in_sys_mman=no)]) + if test "$gnupg_cv_mlock_is_in_sys_mman" = "yes"; then + AC_DEFINE(HAVE_MLOCK,1, + [Defined if the system supports an mlock() call]) + fi + fi + fi + if test "$ac_cv_func_mlock" = "yes"; then + AC_CHECK_FUNCS(sysconf getpagesize) + AC_MSG_CHECKING(whether mlock is broken) + AC_CACHE_VAL(gnupg_cv_have_broken_mlock, + AC_RUN_IFELSE([AC_LANG_SOURCE([[ +#include +#include +#include +#include +#include +#include + +int main() +{ + char *pool; + int err; + long int pgsize; + +#if defined(HAVE_SYSCONF) && defined(_SC_PAGESIZE) + pgsize = sysconf (_SC_PAGESIZE); +#elif defined (HAVE_GETPAGESIZE) + pgsize = getpagesize(); +#else + pgsize = -1; +#endif + + if (pgsize == -1) + pgsize = 4096; + + pool = malloc( 4096 + pgsize ); + if( !pool ) + return 2; + pool += (pgsize - ((size_t)pool % pgsize)); + + err = mlock( pool, 4096 ); + if( !err || errno == EPERM || errno == EAGAIN) + return 0; /* okay */ + + return 1; /* hmmm */ +} + ]])], + gnupg_cv_have_broken_mlock="no", + gnupg_cv_have_broken_mlock="yes", + gnupg_cv_have_broken_mlock="assume-no" + ) + ) + if test "$gnupg_cv_have_broken_mlock" = "yes"; then + AC_DEFINE(HAVE_BROKEN_MLOCK,1, + [Defined if the mlock() call does not work]) + AC_MSG_RESULT(yes) + else + if test "$gnupg_cv_have_broken_mlock" = "no"; then + AC_MSG_RESULT(no) + else + AC_MSG_RESULT(assuming no) + fi + fi + fi + ]) diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/aclocal.m4 b/debian/pinentry-tqt/pinentry-tqt-1.2.1/aclocal.m4 similarity index 93% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/aclocal.m4 rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/aclocal.m4 index ea595de3..056ae0e3 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/aclocal.m4 +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/aclocal.m4 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.14.1 -*- Autoconf -*- +# generated automatically by aclocal 1.16.3 -*- Autoconf -*- -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2020 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -21,7 +21,7 @@ If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) # lib-ld.m4 serial 6 -dnl Copyright (C) 1996-2003, 2009-2014 Free Software Foundation, Inc. +dnl Copyright (C) 1996-2003, 2009-2016 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -141,7 +141,7 @@ AC_LIB_PROG_LD_GNU ]) # lib-link.m4 serial 26 (gettext-0.18.2) -dnl Copyright (C) 2001-2014 Free Software Foundation, Inc. +dnl Copyright (C) 2001-2016 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -919,7 +919,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], ]) # lib-prefix.m4 serial 7 (gettext-0.18) -dnl Copyright (C) 2001-2005, 2008-2014 Free Software Foundation, Inc. +dnl Copyright (C) 2001-2005, 2008-2016 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -1143,7 +1143,7 @@ sixtyfour bits test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" ]) -# Copyright (C) 2002-2013 Free Software Foundation, Inc. +# Copyright (C) 2002-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1155,10 +1155,10 @@ sixtyfour bits # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.14' +[am__api_version='1.16' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.14.1], [], +m4_if([$1], [1.16.3], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -1174,14 +1174,14 @@ m4_define([_AM_AUTOCONF_VERSION], []) # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.14.1])dnl +[AM_AUTOMAKE_VERSION([1.16.3])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1233,7 +1233,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd` # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997-2013 Free Software Foundation, Inc. +# Copyright (C) 1997-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1264,7 +1264,7 @@ AC_CONFIG_COMMANDS_PRE( Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1455,13 +1455,12 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. - # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], @@ -1469,49 +1468,43 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac + # TODO: see whether this extra hack can be removed once we start + # requiring Autoconf 2.70 or later. + AS_CASE([$CONFIG_FILES], + [*\'*], [eval set x "$CONFIG_FILES"], + [*], [set x $CONFIG_FILES]) shift - for mf + # Used to flag and report bootstrapping failures. + am_rc=0 + for am_mf do # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line + am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile which includes + # dependency-tracking related rules and includes. + # Grep'ing the whole file directly is not great: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`AS_DIRNAME("$mf")` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`AS_DIRNAME(["$file"])` - AS_MKDIR_P([$dirpart/$fdir]) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done + sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ + || continue + am_dirpart=`AS_DIRNAME(["$am_mf"])` + am_filepart=`AS_BASENAME(["$am_mf"])` + AM_RUN_LOG([cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles]) || am_rc=$? done + if test $am_rc -ne 0; then + AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments + for automatic dependency tracking. If GNU make was not used, consider + re-running the configure script with MAKE="gmake" (or whatever is + necessary). You can also try re-running configure with the + '--disable-dependency-tracking' option to at least be able to build + the package (albeit without support for automatic dependency tracking).]) + fi + AS_UNSET([am_dirpart]) + AS_UNSET([am_filepart]) + AS_UNSET([am_mf]) + AS_UNSET([am_rc]) + rm -f conftest-deps.mk } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS @@ -1520,18 +1513,17 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # -# This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each '.P' file that we will -# need in order to bootstrap the dependency handling code. +# This code is only required when automatic dependency tracking is enabled. +# This creates each '.Po' and '.Plo' makefile fragment that we'll need in +# order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], - [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) -]) + [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])]) # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1618,11 +1610,11 @@ AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: -# -# +# +# AC_SUBST([mkdir_p], ['$(MKDIR_P)']) -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl @@ -1686,7 +1678,7 @@ END Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . +that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM @@ -1696,6 +1688,9 @@ END AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) fi fi +dnl The trailing newline in this macro's definition is deliberate, for +dnl backward compatibility and to allow trailing 'dnl'-style comments +dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. ]) dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not @@ -1725,7 +1720,7 @@ for _am_header in $config_headers :; do done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1736,7 +1731,7 @@ echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_co # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -if test x"${install_sh}" != xset; then +if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; @@ -1746,7 +1741,7 @@ if test x"${install_sh}" != xset; then fi AC_SUBST([install_sh])]) -# Copyright (C) 2003-2013 Free Software Foundation, Inc. +# Copyright (C) 2003-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1768,7 +1763,7 @@ AC_SUBST([am__leading_dot])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1803,7 +1798,7 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1811,49 +1806,42 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) # AM_MAKE_INCLUDE() # ----------------- -# Check to see how make treats includes. +# Check whether make has an 'include' directive that can support all +# the idioms we need for our automatic dependency tracking code. AC_DEFUN([AM_MAKE_INCLUDE], -[am_make=${MAKE-make} -cat > confinc << 'END' +[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive]) +cat > confinc.mk << 'END' am__doit: - @echo this is the am__doit target + @echo this is the am__doit target >confinc.out .PHONY: am__doit END -# If we don't find an include directive, just comment out the code. -AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD - ;; - esac -fi -AC_SUBST([am__include]) -AC_SUBST([am__quote]) -AC_MSG_RESULT([$_am_result]) -rm -f confinc confmf -]) +# BSD make does it like this. +echo '.include "confinc.mk" # ignored' > confmf.BSD +# Other make implementations (GNU, Solaris 10, AIX) do it like this. +echo 'include confinc.mk # ignored' > confmf.GNU +_am_result=no +for s in GNU BSD; do + AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out]) + AS_CASE([$?:`cat confinc.out 2>/dev/null`], + ['0:this is the am__doit target'], + [AS_CASE([$s], + [BSD], [am__include='.include' am__quote='"'], + [am__include='include' am__quote=''])]) + if test "$am__include" != "#"; then + _am_result="yes ($s style)" + break + fi +done +rm -f confinc.* confmf.* +AC_MSG_RESULT([${_am_result}]) +AC_SUBST([am__include])]) +AC_SUBST([am__quote])]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997-2013 Free Software Foundation, Inc. +# Copyright (C) 1997-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1874,12 +1862,7 @@ AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac + MISSING="\${SHELL} '$am_aux_dir/missing'" fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then @@ -1890,38 +1873,9 @@ else fi ]) -# -*- Autoconf -*- -# Obsolete and "removed" macros, that must however still report explicit -# error messages when used, to smooth transition. -# -# Copyright (C) 1996-2013 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -AC_DEFUN([AM_CONFIG_HEADER], -[AC_DIAGNOSE([obsolete], -['$0': this macro is obsolete. -You should use the 'AC][_CONFIG_HEADERS' macro instead.])dnl -AC_CONFIG_HEADERS($@)]) - -AC_DEFUN([AM_PROG_CC_STDC], -[AC_PROG_CC -am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc -AC_DIAGNOSE([obsolete], -['$0': this macro is obsolete. -You should simply use the 'AC][_PROG_CC' macro instead. -Also, your code should no longer depend upon 'am_cv_prog_cc_stdc', -but upon 'ac_cv_prog_cc_stdc'.])]) - -AC_DEFUN([AM_C_PROTOTYPES], - [AC_FATAL([automatic de-ANSI-fication support has been removed])]) -AU_DEFUN([fp_C_PROTOTYPES], [AM_C_PROTOTYPES]) - # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1950,7 +1904,7 @@ AC_DEFUN([_AM_SET_OPTIONS], AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1997,7 +1951,7 @@ AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -2016,7 +1970,7 @@ AC_DEFUN([AM_RUN_LOG], # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -2097,7 +2051,7 @@ AC_CONFIG_COMMANDS_PRE( rm -f conftest.file ]) -# Copyright (C) 2009-2013 Free Software Foundation, Inc. +# Copyright (C) 2009-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -2157,7 +2111,7 @@ AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -2185,7 +2139,7 @@ fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006-2013 Free Software Foundation, Inc. +# Copyright (C) 2006-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -2204,7 +2158,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004-2013 Free Software Foundation, Inc. +# Copyright (C) 2004-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -2341,4 +2295,5 @@ m4_include([m4/iconv.m4]) m4_include([m4/libassuan.m4]) m4_include([m4/pkg.m4]) m4_include([m4/qt.m4]) +m4_include([m4/qt4.m4]) m4_include([acinclude.m4]) diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/autogen.rc b/debian/pinentry-tqt/pinentry-tqt-1.2.1/autogen.rc similarity index 85% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/autogen.rc rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/autogen.rc index 9be5e625..46a5f44f 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/autogen.rc +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/autogen.rc @@ -14,8 +14,6 @@ esac case "$myhost" in w32) configure_opts=" - --with-gpg-error-prefix=@SYSROOT@ - --with-libassuan-prefix=@SYSROOT@ --with-libiconv-prefix=@SYSROOT@ PKG_CONFIG_LIBDIR=@SYSROOT@/lib/pkgconfig " diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/autogen.sh b/debian/pinentry-tqt/pinentry-tqt-1.2.1/autogen.sh similarity index 83% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/autogen.sh rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/autogen.sh index 37edfc69..8f33ece8 100755 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/autogen.sh +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/autogen.sh @@ -1,6 +1,6 @@ #! /bin/sh # autogen.sh -# Copyright (C) 2003, 2014 g10 Code GmbH +# Copyright (C) 2003, 2014, 2017, 2018 g10 Code GmbH # # This file is free software; as a special exception the author gives # unlimited permission to copy and/or distribute it, with or without @@ -15,7 +15,7 @@ # configure it for the respective package. It is maintained as part of # GnuPG and source copied by other packages. # -# Version: 2014-06-06 +# Version: 2018-07-10 configure_ac="configure.ac" @@ -74,13 +74,23 @@ PRINT_HOST=no PRINT_BUILD=no tmp=$(dirname "$0") tsdir=$(cd "${tmp}"; pwd) -version_parts=3 if [ -n "${AUTOGEN_SH_SILENT}" ]; then SILENT=" --silent" fi if test x"$1" = x"--help"; then - echo "usage: ./autogen.sh [--silent] [--force] [--build-TYPE] [ARGS]" + echo "usage: ./autogen.sh [OPTIONS] [ARGS]" + echo " Options:" + echo " --silent Silent operation" + echo " --force Pass --force to autoconf" + echo " --find-version Helper for configure.ac" + echo " --git-build Run all commands to build from a Git" + echo " --print-host Print only the host triplet" + echo " --print-build Print only the build platform triplet" + echo " --build-TYPE Configure to cross build for TYPE" + echo "" + echo " ARGS are passed to configure in --build-TYPE mode." + echo " Configuration for this script is expected in autogen.rc" exit 0 fi if test x"$1" = x"--silent"; then @@ -149,6 +159,10 @@ case "$1" in SILENT=" --silent" shift ;; + --git-build) + myhost="git-build" + shift + ;; --build-w32) myhost="w32" shift @@ -177,6 +191,25 @@ esac die_p +# **** GIT BUILD **** +# This is a helper to build from git. +if [ "$myhost" = "git-build" ]; then + tmp="$(pwd)" + cd "$tsdir" || fatal "error cd-ing to $tsdir" + ./autogen.sh || fatal "error running ./autogen.sh" + cd "$tmp" || fatal "error cd-ing back to $tmp" + die_p + "$tsdir"/configure || fatal "error running $tsdir/configure" + die_p + make || fatal "error running make" + die_p + make check || fatal "error running make check" + die_p + exit 0 +fi +# **** end GIT BUILD **** + + # Source our configuration if [ -f "${tsdir}/autogen.rc" ]; then . "${tsdir}/autogen.rc" @@ -200,32 +233,36 @@ if [ "$myhost" = "find-version" ]; then minor="$3" micro="$4" - case "$version_parts" in - 2) - matchstr1="$package-$major.[0-9]*" - matchstr2="$package-$major-base" - vers="$major.$minor" - ;; - *) - matchstr1="$package-$major.$minor.[0-9]*" - matchstr2="$package-$major.$minor-base" - vers="$major.$minor.$micro" - ;; - esac + if [ -z "$package" -o -z "$major" -o -z "$minor" ]; then + echo "usage: ./autogen.sh --find-version PACKAGE MAJOR MINOR [MICRO]" >&2 + exit 1 + fi + + if [ -z "$micro" ]; then + matchstr1="$package-$major.[0-9]*" + matchstr2="$package-$major-base" + vers="$major.$minor" + else + matchstr1="$package-$major.$minor.[0-9]*" + matchstr2="$package-$major.$minor-base" + vers="$major.$minor.$micro" + fi beta=no - if [ -d .git ]; then + if [ -e .git ]; then ingit=yes tmp=$(git describe --match "${matchstr1}" --long 2>/dev/null) + tmp=$(echo "$tmp" | sed s/^"$package"//) if [ -n "$tmp" ]; then - tmp=$(echo "$tmp"|awk -F- '$3!=0 && $3 !~ /^beta/ {print"-beta"$3}') + tmp=$(echo "$tmp" | sed s/^"$package"// \ + | awk -F- '$3!=0 && $3 !~ /^beta/ {print"-beta"$3}') else tmp=$(git describe --match "${matchstr2}" --long 2>/dev/null \ | awk -F- '$4!=0{print"-beta"$4}') fi [ -n "$tmp" ] && beta=yes rev=$(git rev-parse --short HEAD | tr -d '\n\r') - rvd=$((0x$(echo ${rev} | head -c 4))) + rvd=$((0x$(echo ${rev} | dd bs=1 count=4 2>/dev/null))) else ingit=no beta=yes @@ -311,6 +348,7 @@ if [ "$myhost" = "w32" ]; then $tsdir/configure --enable-maintainer-mode ${SILENT} \ --prefix=${w32root} \ --host=${host} --build=${build} SYSROOT=${w32root} \ + PKG_CONFIG_LIBDIR=${w32root}/lib/pkgconfig \ ${configure_opts} ${extraoptions} "$@" rc=$? exit $rc @@ -416,8 +454,11 @@ fi # Check the git setup. if [ -d .git ]; then - CP="cp -a" - [ -z "${SILENT}" ] && CP="$CP -v" + CP="cp -p" + # If we have a GNU cp we can add -v + if cp --version >/dev/null 2>/dev/null; then + [ -z "${SILENT}" ] && CP="$CP -v" + fi if [ -f .git/hooks/pre-commit.sample -a ! -f .git/hooks/pre-commit ] ; then [ -z "${SILENT}" ] && cat <. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). +# +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. +# +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess +# +# Please send patches to . + + +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. + + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright 1992-2022 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +# Just in case it came from the environment. +GUESS= + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +tmp= +# shellcheck disable=SC2172 +trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 + +set_cc_for_build() { + # prevent multiple calls if $tmp is already set + test "$tmp" && return 0 + : "${TMPDIR=/tmp}" + # shellcheck disable=SC2039,SC3028 + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } + dummy=$tmp/dummy + case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in + ,,) echo "int x;" > "$dummy.c" + for driver in cc gcc c89 c99 ; do + if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then + CC_FOR_BUILD=$driver + break + fi + done + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; + esac +} + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if test -f /.attbin/uname ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +case $UNAME_SYSTEM in +Linux|GNU|GNU/*) + LIBC=unknown + + set_cc_for_build + cat <<-EOF > "$dummy.c" + #include + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #elif defined(__GLIBC__) + LIBC=gnu + #else + #include + /* First heuristic to detect musl libc. */ + #ifdef __DEFINED_va_list + LIBC=musl + #endif + #endif + EOF + cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + eval "$cc_set_libc" + + # Second heuristic to detect musl libc. + if [ "$LIBC" = unknown ] && + command -v ldd >/dev/null && + ldd --version 2>&1 | grep -q ^musl; then + LIBC=musl + fi + + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + if [ "$LIBC" = unknown ]; then + LIBC=gnu + fi + ;; +esac + +# Note: order is significant - the case branches are not exclusive. + +case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + /sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + echo unknown)` + case $UNAME_MACHINE_ARCH in + aarch64eb) machine=aarch64_be-unknown ;; + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` + machine=${arch}${endian}-unknown + ;; + *) machine=$UNAME_MACHINE_ARCH-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently (or will in the future) and ABI. + case $UNAME_MACHINE_ARCH in + earm*) + os=netbsdelf + ;; + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # Determine ABI tags. + case $UNAME_MACHINE_ARCH in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case $UNAME_VERSION in + Debian*) + release='-gnu' + ;; + *) + release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + GUESS=$machine-${os}${release}${abi-} + ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE + ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE + ;; + *:SecBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE + ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE + ;; + *:MidnightBSD:*:*) + GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE + ;; + *:ekkoBSD:*:*) + GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE + ;; + *:SolidBSD:*:*) + GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE + ;; + *:OS108:*:*) + GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE + ;; + macppc:MirBSD:*:*) + GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE + ;; + *:MirBSD:*:*) + GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE + ;; + *:Sortix:*:*) + GUESS=$UNAME_MACHINE-unknown-sortix + ;; + *:Twizzler:*:*) + GUESS=$UNAME_MACHINE-unknown-twizzler + ;; + *:Redox:*:*) + GUESS=$UNAME_MACHINE-unknown-redox + ;; + mips:OSF1:*.*) + GUESS=mips-dec-osf1 + ;; + alpha:OSF1:*:*) + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + trap '' 0 + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case $ALPHA_CPU_TYPE in + "EV4 (21064)") + UNAME_MACHINE=alpha ;; + "EV4.5 (21064)") + UNAME_MACHINE=alpha ;; + "LCA4 (21066/21068)") + UNAME_MACHINE=alpha ;; + "EV5 (21164)") + UNAME_MACHINE=alphaev5 ;; + "EV5.6 (21164A)") + UNAME_MACHINE=alphaev56 ;; + "EV5.6 (21164PC)") + UNAME_MACHINE=alphapca56 ;; + "EV5.7 (21164PC)") + UNAME_MACHINE=alphapca57 ;; + "EV6 (21264)") + UNAME_MACHINE=alphaev6 ;; + "EV6.7 (21264A)") + UNAME_MACHINE=alphaev67 ;; + "EV6.8CB (21264C)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8AL (21264B)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8CX (21264D)") + UNAME_MACHINE=alphaev68 ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE=alphaev69 ;; + "EV7 (21364)") + UNAME_MACHINE=alphaev7 ;; + "EV7.9 (21364A)") + UNAME_MACHINE=alphaev79 ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + GUESS=$UNAME_MACHINE-dec-osf$OSF_REL + ;; + Amiga*:UNIX_System_V:4.0:*) + GUESS=m68k-unknown-sysv4 + ;; + *:[Aa]miga[Oo][Ss]:*:*) + GUESS=$UNAME_MACHINE-unknown-amigaos + ;; + *:[Mm]orph[Oo][Ss]:*:*) + GUESS=$UNAME_MACHINE-unknown-morphos + ;; + *:OS/390:*:*) + GUESS=i370-ibm-openedition + ;; + *:z/VM:*:*) + GUESS=s390-ibm-zvmoe + ;; + *:OS400:*:*) + GUESS=powerpc-ibm-os400 + ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + GUESS=arm-acorn-riscix$UNAME_RELEASE + ;; + arm*:riscos:*:*|arm*:RISCOS:*:*) + GUESS=arm-unknown-riscos + ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + GUESS=hppa1.1-hitachi-hiuxmpp + ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + case `(/bin/universe) 2>/dev/null` in + att) GUESS=pyramid-pyramid-sysv3 ;; + *) GUESS=pyramid-pyramid-bsd ;; + esac + ;; + NILE*:*:*:dcosx) + GUESS=pyramid-pyramid-svr4 + ;; + DRS?6000:unix:4.0:6*) + GUESS=sparc-icl-nx6 + ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) GUESS=sparc-icl-nx7 ;; + esac + ;; + s390x:SunOS:*:*) + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL + ;; + sun4H:SunOS:5.*:*) + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-hal-solaris2$SUN_REL + ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-sun-solaris2$SUN_REL + ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + GUESS=i386-pc-auroraux$UNAME_RELEASE + ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + set_cc_for_build + SUN_ARCH=i386 + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH=x86_64 + fi + fi + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=$SUN_ARCH-pc-solaris2$SUN_REL + ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-sun-solaris3$SUN_REL + ;; + sun4*:SunOS:*:*) + case `/usr/bin/arch -k` in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'` + GUESS=sparc-sun-sunos$SUN_REL + ;; + sun3*:SunOS:*:*) + GUESS=m68k-sun-sunos$UNAME_RELEASE + ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 + case `/bin/arch` in + sun3) + GUESS=m68k-sun-sunos$UNAME_RELEASE + ;; + sun4) + GUESS=sparc-sun-sunos$UNAME_RELEASE + ;; + esac + ;; + aushp:SunOS:*:*) + GUESS=sparc-auspex-sunos$UNAME_RELEASE + ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + GUESS=m68k-milan-mint$UNAME_RELEASE + ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + GUESS=m68k-hades-mint$UNAME_RELEASE + ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + GUESS=m68k-unknown-mint$UNAME_RELEASE + ;; + m68k:machten:*:*) + GUESS=m68k-apple-machten$UNAME_RELEASE + ;; + powerpc:machten:*:*) + GUESS=powerpc-apple-machten$UNAME_RELEASE + ;; + RISC*:Mach:*:*) + GUESS=mips-dec-mach_bsd4.3 + ;; + RISC*:ULTRIX:*:*) + GUESS=mips-dec-ultrix$UNAME_RELEASE + ;; + VAX*:ULTRIX*:*:*) + GUESS=vax-dec-ultrix$UNAME_RELEASE + ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + GUESS=clipper-intergraph-clix$UNAME_RELEASE + ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && + dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`"$dummy" "$dummyarg"` && + { echo "$SYSTEM_NAME"; exit; } + GUESS=mips-mips-riscos$UNAME_RELEASE + ;; + Motorola:PowerMAX_OS:*:*) + GUESS=powerpc-motorola-powermax + ;; + Motorola:*:4.3:PL8-*) + GUESS=powerpc-harris-powermax + ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + GUESS=powerpc-harris-powermax + ;; + Night_Hawk:Power_UNIX:*:*) + GUESS=powerpc-harris-powerunix + ;; + m88k:CX/UX:7*:*) + GUESS=m88k-harris-cxux7 + ;; + m88k:*:4*:R4*) + GUESS=m88k-motorola-sysv4 + ;; + m88k:*:3*:R3*) + GUESS=m88k-motorola-sysv3 + ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 + then + if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ + test "$TARGET_BINARY_INTERFACE"x = x + then + GUESS=m88k-dg-dgux$UNAME_RELEASE + else + GUESS=m88k-dg-dguxbcs$UNAME_RELEASE + fi + else + GUESS=i586-dg-dgux$UNAME_RELEASE + fi + ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + GUESS=m88k-dolphin-sysv3 + ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + GUESS=m88k-motorola-sysv3 + ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + GUESS=m88k-tektronix-sysv3 + ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + GUESS=m68k-tektronix-bsd + ;; + *:IRIX*:*:*) + IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'` + GUESS=mips-sgi-irix$IRIX_REL + ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id + ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + GUESS=i386-ibm-aix + ;; + ia64:AIX:*:*) + if test -x /usr/bin/oslevel ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=$UNAME_VERSION.$UNAME_RELEASE + fi + GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV + ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` + then + GUESS=$SYSTEM_NAME + else + GUESS=rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + GUESS=rs6000-ibm-aix3.2.4 + else + GUESS=rs6000-ibm-aix3.2 + fi + ;; + *:AIX:*:[4567]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if test -x /usr/bin/lslpp ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \ + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` + else + IBM_REV=$UNAME_VERSION.$UNAME_RELEASE + fi + GUESS=$IBM_ARCH-ibm-aix$IBM_REV + ;; + *:AIX:*:*) + GUESS=rs6000-ibm-aix + ;; + ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) + GUESS=romp-ibm-bsd4.4 + ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to + ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + GUESS=rs6000-bull-bosx + ;; + DPX/2?00:B.O.S.:*:*) + GUESS=m68k-bull-sysv3 + ;; + 9000/[34]??:4.3bsd:1.*:*) + GUESS=m68k-hp-bsd + ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + GUESS=m68k-hp-bsd4.4 + ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` + case $UNAME_MACHINE in + 9000/31?) HP_ARCH=m68000 ;; + 9000/[34]??) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if test -x /usr/bin/getconf; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case $sc_cpu_version in + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case $sc_kernel_bits in + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 + esac ;; + esac + fi + if test "$HP_ARCH" = ""; then + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if test "$HP_ARCH" = hppa2.0w + then + set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH=hppa2.0w + else + HP_ARCH=hppa64 + fi + fi + GUESS=$HP_ARCH-hp-hpux$HPUX_REV + ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` + GUESS=ia64-hp-hpux$HPUX_REV + ;; + 3050*:HI-UX:*:*) + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && + { echo "$SYSTEM_NAME"; exit; } + GUESS=unknown-hitachi-hiuxwe2 + ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) + GUESS=hppa1.1-hp-bsd + ;; + 9000/8??:4.3bsd:*:*) + GUESS=hppa1.0-hp-bsd + ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + GUESS=hppa1.0-hp-mpeix + ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) + GUESS=hppa1.1-hp-osf + ;; + hp8??:OSF1:*:*) + GUESS=hppa1.0-hp-osf + ;; + i*86:OSF1:*:*) + if test -x /usr/sbin/sysversion ; then + GUESS=$UNAME_MACHINE-unknown-osf1mk + else + GUESS=$UNAME_MACHINE-unknown-osf1 + fi + ;; + parisc*:Lites*:*:*) + GUESS=hppa1.1-hp-lites + ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + GUESS=c1-convex-bsd + ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + GUESS=c34-convex-bsd + ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + GUESS=c38-convex-bsd + ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + GUESS=c4-convex-bsd + ;; + CRAY*Y-MP:*:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=ymp-cray-unicos$CRAY_REL + ;; + CRAY*[A-Z]90:*:*:*) + echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=t90-cray-unicos$CRAY_REL + ;; + CRAY*T3E:*:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=alphaev5-cray-unicosmk$CRAY_REL + ;; + CRAY*SV1:*:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=sv1-cray-unicos$CRAY_REL + ;; + *:UNICOS/mp:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=craynv-cray-unicosmp$CRAY_REL + ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` + GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} + ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` + GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} + ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE + ;; + sparc*:BSD/OS:*:*) + GUESS=sparc-unknown-bsdi$UNAME_RELEASE + ;; + *:BSD/OS:*:*) + GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE + ;; + arm:FreeBSD:*:*) + UNAME_PROCESSOR=`uname -p` + set_cc_for_build + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi + else + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf + fi + ;; + *:FreeBSD:*:*) + UNAME_PROCESSOR=`/usr/bin/uname -p` + case $UNAME_PROCESSOR in + amd64) + UNAME_PROCESSOR=x86_64 ;; + i386) + UNAME_PROCESSOR=i586 ;; + esac + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL + ;; + i*:CYGWIN*:*) + GUESS=$UNAME_MACHINE-pc-cygwin + ;; + *:MINGW64*:*) + GUESS=$UNAME_MACHINE-pc-mingw64 + ;; + *:MINGW*:*) + GUESS=$UNAME_MACHINE-pc-mingw32 + ;; + *:MSYS*:*) + GUESS=$UNAME_MACHINE-pc-msys + ;; + i*:PW*:*) + GUESS=$UNAME_MACHINE-pc-pw32 + ;; + *:SerenityOS:*:*) + GUESS=$UNAME_MACHINE-pc-serenity + ;; + *:Interix*:*) + case $UNAME_MACHINE in + x86) + GUESS=i586-pc-interix$UNAME_RELEASE + ;; + authenticamd | genuineintel | EM64T) + GUESS=x86_64-unknown-interix$UNAME_RELEASE + ;; + IA64) + GUESS=ia64-unknown-interix$UNAME_RELEASE + ;; + esac ;; + i*:UWIN*:*) + GUESS=$UNAME_MACHINE-pc-uwin + ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + GUESS=x86_64-pc-cygwin + ;; + prep*:SunOS:5.*:*) + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=powerpcle-unknown-solaris2$SUN_REL + ;; + *:GNU:*:*) + # the GNU system + GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'` + GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'` + GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL + ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"` + GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC + ;; + *:Minix:*:*) + GUESS=$UNAME_MACHINE-unknown-minix + ;; + aarch64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + arm*:Linux:*:*) + set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi + else + GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf + fi + fi + ;; + avr32*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + cris:Linux:*:*) + GUESS=$UNAME_MACHINE-axis-linux-$LIBC + ;; + crisv32:Linux:*:*) + GUESS=$UNAME_MACHINE-axis-linux-$LIBC + ;; + e2k:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + frv:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + hexagon:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + i*86:Linux:*:*) + GUESS=$UNAME_MACHINE-pc-linux-$LIBC + ;; + ia64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + k1om:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + m32r*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + m68*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + mips:Linux:*:* | mips64:Linux:*:*) + set_cc_for_build + IS_GLIBC=0 + test x"${LIBC}" = xgnu && IS_GLIBC=1 + sed 's/^ //' << EOF > "$dummy.c" + #undef CPU + #undef mips + #undef mipsel + #undef mips64 + #undef mips64el + #if ${IS_GLIBC} && defined(_ABI64) + LIBCABI=gnuabi64 + #else + #if ${IS_GLIBC} && defined(_ABIN32) + LIBCABI=gnuabin32 + #else + LIBCABI=${LIBC} + #endif + #endif + + #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa64r6 + #else + #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa32r6 + #else + #if defined(__mips64) + CPU=mips64 + #else + CPU=mips + #endif + #endif + #endif + + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + MIPS_ENDIAN=el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + MIPS_ENDIAN= + #else + MIPS_ENDIAN= + #endif + #endif +EOF + cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'` + eval "$cc_set_vars" + test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } + ;; + mips64el:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + openrisc*:Linux:*:*) + GUESS=or1k-unknown-linux-$LIBC + ;; + or32:Linux:*:* | or1k*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + padre:Linux:*:*) + GUESS=sparc-unknown-linux-$LIBC + ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + GUESS=hppa64-unknown-linux-$LIBC + ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;; + PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;; + *) GUESS=hppa-unknown-linux-$LIBC ;; + esac + ;; + ppc64:Linux:*:*) + GUESS=powerpc64-unknown-linux-$LIBC + ;; + ppc:Linux:*:*) + GUESS=powerpc-unknown-linux-$LIBC + ;; + ppc64le:Linux:*:*) + GUESS=powerpc64le-unknown-linux-$LIBC + ;; + ppcle:Linux:*:*) + GUESS=powerpcle-unknown-linux-$LIBC + ;; + riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + s390:Linux:*:* | s390x:Linux:*:*) + GUESS=$UNAME_MACHINE-ibm-linux-$LIBC + ;; + sh64*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + sh*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + tile*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + vax:Linux:*:*) + GUESS=$UNAME_MACHINE-dec-linux-$LIBC + ;; + x86_64:Linux:*:*) + set_cc_for_build + LIBCABI=$LIBC + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_X32 >/dev/null + then + LIBCABI=${LIBC}x32 + fi + fi + GUESS=$UNAME_MACHINE-pc-linux-$LIBCABI + ;; + xtensa*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + GUESS=i386-sequent-sysv4 + ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION + ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + GUESS=$UNAME_MACHINE-pc-os2-emx + ;; + i*86:XTS-300:*:STOP) + GUESS=$UNAME_MACHINE-unknown-stop + ;; + i*86:atheos:*:*) + GUESS=$UNAME_MACHINE-unknown-atheos + ;; + i*86:syllable:*:*) + GUESS=$UNAME_MACHINE-pc-syllable + ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + GUESS=i386-unknown-lynxos$UNAME_RELEASE + ;; + i*86:*DOS:*:*) + GUESS=$UNAME_MACHINE-pc-msdosdjgpp + ;; + i*86:*:4.*:*) + UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL + else + GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL + fi + ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL + else + GUESS=$UNAME_MACHINE-pc-sysv32 + fi + ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configure will decide that + # this is a cross-build. + GUESS=i586-pc-msdosdjgpp + ;; + Intel:Mach:3*:*) + GUESS=i386-pc-mach3 + ;; + paragon:*:*:*) + GUESS=i860-intel-osf1 + ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4 + fi + ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + GUESS=m68010-convergent-sysv + ;; + mc68k:UNIX:SYSTEM5:3.51m) + GUESS=m68k-convergent-sysv + ;; + M680?0:D-NIX:5.3:*) + GUESS=m68k-diab-dnix + ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + GUESS=m68k-unknown-lynxos$UNAME_RELEASE + ;; + mc68030:UNIX_System_V:4.*:*) + GUESS=m68k-atari-sysv4 + ;; + TSUNAMI:LynxOS:2.*:*) + GUESS=sparc-unknown-lynxos$UNAME_RELEASE + ;; + rs6000:LynxOS:2.*:*) + GUESS=rs6000-unknown-lynxos$UNAME_RELEASE + ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + GUESS=powerpc-unknown-lynxos$UNAME_RELEASE + ;; + SM[BE]S:UNIX_SV:*:*) + GUESS=mips-dde-sysv$UNAME_RELEASE + ;; + RM*:ReliantUNIX-*:*:*) + GUESS=mips-sni-sysv4 + ;; + RM*:SINIX-*:*:*) + GUESS=mips-sni-sysv4 + ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + GUESS=$UNAME_MACHINE-sni-sysv4 + else + GUESS=ns32k-sni-sysv + fi + ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + GUESS=i586-unisys-sysv4 + ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + GUESS=hppa1.1-stratus-sysv4 + ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + GUESS=i860-stratus-sysv4 + ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + GUESS=$UNAME_MACHINE-stratus-vos + ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + GUESS=hppa1.1-stratus-vos + ;; + mc68*:A/UX:*:*) + GUESS=m68k-apple-aux$UNAME_RELEASE + ;; + news*:NEWS-OS:6*:*) + GUESS=mips-sony-newsos6 + ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if test -d /usr/nec; then + GUESS=mips-nec-sysv$UNAME_RELEASE + else + GUESS=mips-unknown-sysv$UNAME_RELEASE + fi + ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + GUESS=powerpc-be-beos + ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + GUESS=powerpc-apple-beos + ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + GUESS=i586-pc-beos + ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + GUESS=i586-pc-haiku + ;; + x86_64:Haiku:*:*) + GUESS=x86_64-unknown-haiku + ;; + SX-4:SUPER-UX:*:*) + GUESS=sx4-nec-superux$UNAME_RELEASE + ;; + SX-5:SUPER-UX:*:*) + GUESS=sx5-nec-superux$UNAME_RELEASE + ;; + SX-6:SUPER-UX:*:*) + GUESS=sx6-nec-superux$UNAME_RELEASE + ;; + SX-7:SUPER-UX:*:*) + GUESS=sx7-nec-superux$UNAME_RELEASE + ;; + SX-8:SUPER-UX:*:*) + GUESS=sx8-nec-superux$UNAME_RELEASE + ;; + SX-8R:SUPER-UX:*:*) + GUESS=sx8r-nec-superux$UNAME_RELEASE + ;; + SX-ACE:SUPER-UX:*:*) + GUESS=sxace-nec-superux$UNAME_RELEASE + ;; + Power*:Rhapsody:*:*) + GUESS=powerpc-apple-rhapsody$UNAME_RELEASE + ;; + *:Rhapsody:*:*) + GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE + ;; + arm64:Darwin:*:*) + GUESS=aarch64-apple-darwin$UNAME_RELEASE + ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + if command -v xcode-select > /dev/null 2> /dev/null && \ + ! xcode-select --print-path > /dev/null 2> /dev/null ; then + # Avoid executing cc if there is no toolchain installed as + # cc will be a stub that puts up a graphical alert + # prompting the user to install developer tools. + CC_FOR_BUILD=no_compiler_found + else + set_cc_for_build + fi + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc + fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # uname -m returns i386 or x86_64 + UNAME_PROCESSOR=$UNAME_MACHINE + fi + GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE + ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = x86; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE + ;; + *:QNX:*:4*) + GUESS=i386-pc-qnx + ;; + NEO-*:NONSTOP_KERNEL:*:*) + GUESS=neo-tandem-nsk$UNAME_RELEASE + ;; + NSE-*:NONSTOP_KERNEL:*:*) + GUESS=nse-tandem-nsk$UNAME_RELEASE + ;; + NSR-*:NONSTOP_KERNEL:*:*) + GUESS=nsr-tandem-nsk$UNAME_RELEASE + ;; + NSV-*:NONSTOP_KERNEL:*:*) + GUESS=nsv-tandem-nsk$UNAME_RELEASE + ;; + NSX-*:NONSTOP_KERNEL:*:*) + GUESS=nsx-tandem-nsk$UNAME_RELEASE + ;; + *:NonStop-UX:*:*) + GUESS=mips-compaq-nonstopux + ;; + BS2000:POSIX*:*:*) + GUESS=bs2000-siemens-sysv + ;; + DS/*:UNIX_System_V:*:*) + GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE + ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "${cputype-}" = 386; then + UNAME_MACHINE=i386 + elif test "x${cputype-}" != x; then + UNAME_MACHINE=$cputype + fi + GUESS=$UNAME_MACHINE-unknown-plan9 + ;; + *:TOPS-10:*:*) + GUESS=pdp10-unknown-tops10 + ;; + *:TENEX:*:*) + GUESS=pdp10-unknown-tenex + ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + GUESS=pdp10-dec-tops20 + ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + GUESS=pdp10-xkl-tops20 + ;; + *:TOPS-20:*:*) + GUESS=pdp10-unknown-tops20 + ;; + *:ITS:*:*) + GUESS=pdp10-unknown-its + ;; + SEI:*:*:SEIUX) + GUESS=mips-sei-seiux$UNAME_RELEASE + ;; + *:DragonFly:*:*) + DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL + ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case $UNAME_MACHINE in + A*) GUESS=alpha-dec-vms ;; + I*) GUESS=ia64-dec-vms ;; + V*) GUESS=vax-dec-vms ;; + esac ;; + *:XENIX:*:SysV) + GUESS=i386-pc-xenix + ;; + i*86:skyos:*:*) + SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'` + GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL + ;; + i*86:rdos:*:*) + GUESS=$UNAME_MACHINE-pc-rdos + ;; + i*86:Fiwix:*:*) + GUESS=$UNAME_MACHINE-pc-fiwix + ;; + *:AROS:*:*) + GUESS=$UNAME_MACHINE-unknown-aros + ;; + x86_64:VMkernel:*:*) + GUESS=$UNAME_MACHINE-unknown-esx + ;; + amd64:Isilon\ OneFS:*:*) + GUESS=x86_64-unknown-onefs + ;; + *:Unleashed:*:*) + GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE + ;; +esac + +# Do we have a guess based on uname results? +if test "x$GUESS" != x; then + echo "$GUESS" + exit +fi + +# No uname command or uname output not recognized. +set_cc_for_build +cat > "$dummy.c" < +#include +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#include +#if defined(_SIZE_T_) || defined(SIGLOST) +#include +#endif +#endif +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); +#endif + +#if defined (vax) +#if !defined (ultrix) +#include +#if defined (BSD) +#if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +#else +#if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#endif +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#else +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname un; + uname (&un); + printf ("vax-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("vax-dec-ultrix\n"); exit (0); +#endif +#endif +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname *un; + uname (&un); + printf ("mips-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("mips-dec-ultrix\n"); exit (0); +#endif +#endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. +test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } + +echo "$0: unable to guess system type" >&2 + +case $UNAME_MACHINE:$UNAME_SYSTEM in + mips:Linux | mips64:Linux) + # If we got here on MIPS GNU/Linux, output extra information. + cat >&2 <&2 <&2 </dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = "$UNAME_MACHINE" +UNAME_RELEASE = "$UNAME_RELEASE" +UNAME_SYSTEM = "$UNAME_SYSTEM" +UNAME_VERSION = "$UNAME_VERSION" +EOF +fi + +exit 1 + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/build-aux/config.rpath b/debian/pinentry-tqt/pinentry-tqt-1.2.1/build-aux/config.rpath similarity index 98% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/build-aux/config.rpath rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/build-aux/config.rpath index c38b914d..24be79cf 100755 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/build-aux/config.rpath +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/build-aux/config.rpath @@ -2,7 +2,7 @@ # Output a system dependent set of variables, describing how to set the # run time search path of shared libraries in an executable. # -# Copyright 1996-2013 Free Software Foundation, Inc. +# Copyright 1996-2020 Free Software Foundation, Inc. # Taken from GNU libtool, 2001 # Originally by Gordon Matzigkeit , 1996 # @@ -367,11 +367,7 @@ else dgux*) hardcode_libdir_flag_spec='-L$libdir' ;; - freebsd2.2*) - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - ;; - freebsd2*) + freebsd2.[01]*) hardcode_direct=yes hardcode_minus_L=yes ;; @@ -548,13 +544,11 @@ case "$host_os" in dgux*) library_names_spec='$libname$shrext' ;; + freebsd[23].*) + library_names_spec='$libname$shrext$versuffix' + ;; freebsd* | dragonfly*) - case "$host_os" in - freebsd[123]*) - library_names_spec='$libname$shrext$versuffix' ;; - *) - library_names_spec='$libname$shrext' ;; - esac + library_names_spec='$libname$shrext' ;; gnu*) library_names_spec='$libname$shrext' diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/build-aux/config.sub b/debian/pinentry-tqt/pinentry-tqt-1.2.1/build-aux/config.sub new file mode 100755 index 00000000..dba16e84 --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/build-aux/config.sub @@ -0,0 +1,1890 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright 1992-2022 Free Software Foundation, Inc. + +# shellcheck disable=SC2006,SC2268 # see below for rationale + +timestamp='2022-01-03' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). + + +# Please send patches to . +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS + +Canonicalize a configuration name. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright 1992-2022 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo "$1" + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Split fields of configuration type +# shellcheck disable=SC2162 +saved_IFS=$IFS +IFS="-" read field1 field2 field3 field4 <&2 + exit 1 + ;; + *-*-*-*) + basic_machine=$field1-$field2 + basic_os=$field3-$field4 + ;; + *-*-*) + # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two + # parts + maybe_os=$field2-$field3 + case $maybe_os in + nto-qnx* | linux-* | uclinux-uclibc* \ + | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ + | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ + | storm-chaos* | os2-emx* | rtmk-nova*) + basic_machine=$field1 + basic_os=$maybe_os + ;; + android-linux) + basic_machine=$field1-unknown + basic_os=linux-android + ;; + *) + basic_machine=$field1-$field2 + basic_os=$field3 + ;; + esac + ;; + *-*) + # A lone config we happen to match not fitting any pattern + case $field1-$field2 in + decstation-3100) + basic_machine=mips-dec + basic_os= + ;; + *-*) + # Second component is usually, but not always the OS + case $field2 in + # Prevent following clause from handling this valid os + sun*os*) + basic_machine=$field1 + basic_os=$field2 + ;; + zephyr*) + basic_machine=$field1-unknown + basic_os=$field2 + ;; + # Manufacturers + dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ + | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ + | unicom* | ibm* | next | hp | isi* | apollo | altos* \ + | convergent* | ncr* | news | 32* | 3600* | 3100* \ + | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ + | ultra | tti* | harris | dolphin | highlevel | gould \ + | cbm | ns | masscomp | apple | axis | knuth | cray \ + | microblaze* | sim | cisco \ + | oki | wec | wrs | winbond) + basic_machine=$field1-$field2 + basic_os= + ;; + *) + basic_machine=$field1 + basic_os=$field2 + ;; + esac + ;; + esac + ;; + *) + # Convert single-component short-hands not valid as part of + # multi-component configurations. + case $field1 in + 386bsd) + basic_machine=i386-pc + basic_os=bsd + ;; + a29khif) + basic_machine=a29k-amd + basic_os=udi + ;; + adobe68k) + basic_machine=m68010-adobe + basic_os=scout + ;; + alliant) + basic_machine=fx80-alliant + basic_os= + ;; + altos | altos3068) + basic_machine=m68k-altos + basic_os= + ;; + am29k) + basic_machine=a29k-none + basic_os=bsd + ;; + amdahl) + basic_machine=580-amdahl + basic_os=sysv + ;; + amiga) + basic_machine=m68k-unknown + basic_os= + ;; + amigaos | amigados) + basic_machine=m68k-unknown + basic_os=amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + basic_os=sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + basic_os=sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + basic_os=bsd + ;; + aros) + basic_machine=i386-pc + basic_os=aros + ;; + aux) + basic_machine=m68k-apple + basic_os=aux + ;; + balance) + basic_machine=ns32k-sequent + basic_os=dynix + ;; + blackfin) + basic_machine=bfin-unknown + basic_os=linux + ;; + cegcc) + basic_machine=arm-unknown + basic_os=cegcc + ;; + convex-c1) + basic_machine=c1-convex + basic_os=bsd + ;; + convex-c2) + basic_machine=c2-convex + basic_os=bsd + ;; + convex-c32) + basic_machine=c32-convex + basic_os=bsd + ;; + convex-c34) + basic_machine=c34-convex + basic_os=bsd + ;; + convex-c38) + basic_machine=c38-convex + basic_os=bsd + ;; + cray) + basic_machine=j90-cray + basic_os=unicos + ;; + crds | unos) + basic_machine=m68k-crds + basic_os= + ;; + da30) + basic_machine=m68k-da30 + basic_os= + ;; + decstation | pmax | pmin | dec3100 | decstatn) + basic_machine=mips-dec + basic_os= + ;; + delta88) + basic_machine=m88k-motorola + basic_os=sysv3 + ;; + dicos) + basic_machine=i686-pc + basic_os=dicos + ;; + djgpp) + basic_machine=i586-pc + basic_os=msdosdjgpp + ;; + ebmon29k) + basic_machine=a29k-amd + basic_os=ebmon + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + basic_os=ose + ;; + gmicro) + basic_machine=tron-gmicro + basic_os=sysv + ;; + go32) + basic_machine=i386-pc + basic_os=go32 + ;; + h8300hms) + basic_machine=h8300-hitachi + basic_os=hms + ;; + h8300xray) + basic_machine=h8300-hitachi + basic_os=xray + ;; + h8500hms) + basic_machine=h8500-hitachi + basic_os=hms + ;; + harris) + basic_machine=m88k-harris + basic_os=sysv3 + ;; + hp300 | hp300hpux) + basic_machine=m68k-hp + basic_os=hpux + ;; + hp300bsd) + basic_machine=m68k-hp + basic_os=bsd + ;; + hppaosf) + basic_machine=hppa1.1-hp + basic_os=osf + ;; + hppro) + basic_machine=hppa1.1-hp + basic_os=proelf + ;; + i386mach) + basic_machine=i386-mach + basic_os=mach + ;; + isi68 | isi) + basic_machine=m68k-isi + basic_os=sysv + ;; + m68knommu) + basic_machine=m68k-unknown + basic_os=linux + ;; + magnum | m3230) + basic_machine=mips-mips + basic_os=sysv + ;; + merlin) + basic_machine=ns32k-utek + basic_os=sysv + ;; + mingw64) + basic_machine=x86_64-pc + basic_os=mingw64 + ;; + mingw32) + basic_machine=i686-pc + basic_os=mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + basic_os=mingw32ce + ;; + monitor) + basic_machine=m68k-rom68k + basic_os=coff + ;; + morphos) + basic_machine=powerpc-unknown + basic_os=morphos + ;; + moxiebox) + basic_machine=moxie-unknown + basic_os=moxiebox + ;; + msdos) + basic_machine=i386-pc + basic_os=msdos + ;; + msys) + basic_machine=i686-pc + basic_os=msys + ;; + mvs) + basic_machine=i370-ibm + basic_os=mvs + ;; + nacl) + basic_machine=le32-unknown + basic_os=nacl + ;; + ncr3000) + basic_machine=i486-ncr + basic_os=sysv4 + ;; + netbsd386) + basic_machine=i386-pc + basic_os=netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + basic_os=linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + basic_os=newsos + ;; + news1000) + basic_machine=m68030-sony + basic_os=newsos + ;; + necv70) + basic_machine=v70-nec + basic_os=sysv + ;; + nh3000) + basic_machine=m68k-harris + basic_os=cxux + ;; + nh[45]000) + basic_machine=m88k-harris + basic_os=cxux + ;; + nindy960) + basic_machine=i960-intel + basic_os=nindy + ;; + mon960) + basic_machine=i960-intel + basic_os=mon960 + ;; + nonstopux) + basic_machine=mips-compaq + basic_os=nonstopux + ;; + os400) + basic_machine=powerpc-ibm + basic_os=os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + basic_os=ose + ;; + os68k) + basic_machine=m68k-none + basic_os=os68k + ;; + paragon) + basic_machine=i860-intel + basic_os=osf + ;; + parisc) + basic_machine=hppa-unknown + basic_os=linux + ;; + psp) + basic_machine=mipsallegrexel-sony + basic_os=psp + ;; + pw32) + basic_machine=i586-unknown + basic_os=pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + basic_os=rdos + ;; + rdos32) + basic_machine=i386-pc + basic_os=rdos + ;; + rom68k) + basic_machine=m68k-rom68k + basic_os=coff + ;; + sa29200) + basic_machine=a29k-amd + basic_os=udi + ;; + sei) + basic_machine=mips-sei + basic_os=seiux + ;; + sequent) + basic_machine=i386-sequent + basic_os= + ;; + sps7) + basic_machine=m68k-bull + basic_os=sysv2 + ;; + st2000) + basic_machine=m68k-tandem + basic_os= + ;; + stratus) + basic_machine=i860-stratus + basic_os=sysv4 + ;; + sun2) + basic_machine=m68000-sun + basic_os= + ;; + sun2os3) + basic_machine=m68000-sun + basic_os=sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + basic_os=sunos4 + ;; + sun3) + basic_machine=m68k-sun + basic_os= + ;; + sun3os3) + basic_machine=m68k-sun + basic_os=sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + basic_os=sunos4 + ;; + sun4) + basic_machine=sparc-sun + basic_os= + ;; + sun4os3) + basic_machine=sparc-sun + basic_os=sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + basic_os=sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + basic_os=solaris2 + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + basic_os= + ;; + sv1) + basic_machine=sv1-cray + basic_os=unicos + ;; + symmetry) + basic_machine=i386-sequent + basic_os=dynix + ;; + t3e) + basic_machine=alphaev5-cray + basic_os=unicos + ;; + t90) + basic_machine=t90-cray + basic_os=unicos + ;; + toad1) + basic_machine=pdp10-xkl + basic_os=tops20 + ;; + tpf) + basic_machine=s390x-ibm + basic_os=tpf + ;; + udi29k) + basic_machine=a29k-amd + basic_os=udi + ;; + ultra3) + basic_machine=a29k-nyu + basic_os=sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + basic_os=none + ;; + vaxv) + basic_machine=vax-dec + basic_os=sysv + ;; + vms) + basic_machine=vax-dec + basic_os=vms + ;; + vsta) + basic_machine=i386-pc + basic_os=vsta + ;; + vxworks960) + basic_machine=i960-wrs + basic_os=vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + basic_os=vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + basic_os=vxworks + ;; + xbox) + basic_machine=i686-pc + basic_os=mingw32 + ;; + ymp) + basic_machine=ymp-cray + basic_os=unicos + ;; + *) + basic_machine=$1 + basic_os= + ;; + esac + ;; +esac + +# Decode 1-component or ad-hoc basic machines +case $basic_machine in + # Here we handle the default manufacturer of certain CPU types. It is in + # some cases the only manufacturer, in others, it is the most popular. + w89k) + cpu=hppa1.1 + vendor=winbond + ;; + op50n) + cpu=hppa1.1 + vendor=oki + ;; + op60c) + cpu=hppa1.1 + vendor=oki + ;; + ibm*) + cpu=i370 + vendor=ibm + ;; + orion105) + cpu=clipper + vendor=highlevel + ;; + mac | mpw | mac-mpw) + cpu=m68k + vendor=apple + ;; + pmac | pmac-mpw) + cpu=powerpc + vendor=apple + ;; + + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + cpu=m68000 + vendor=att + ;; + 3b*) + cpu=we32k + vendor=att + ;; + bluegene*) + cpu=powerpc + vendor=ibm + basic_os=cnk + ;; + decsystem10* | dec10*) + cpu=pdp10 + vendor=dec + basic_os=tops10 + ;; + decsystem20* | dec20*) + cpu=pdp10 + vendor=dec + basic_os=tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + cpu=m68k + vendor=motorola + ;; + dpx2*) + cpu=m68k + vendor=bull + basic_os=sysv3 + ;; + encore | umax | mmax) + cpu=ns32k + vendor=encore + ;; + elxsi) + cpu=elxsi + vendor=elxsi + basic_os=${basic_os:-bsd} + ;; + fx2800) + cpu=i860 + vendor=alliant + ;; + genix) + cpu=ns32k + vendor=ns + ;; + h3050r* | hiux*) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + cpu=m68000 + vendor=hp + ;; + hp9k3[2-9][0-9]) + cpu=m68k + vendor=hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + i*86v32) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv32 + ;; + i*86v4*) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv4 + ;; + i*86v) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv + ;; + i*86sol2) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=solaris2 + ;; + j90 | j90-cray) + cpu=j90 + vendor=cray + basic_os=${basic_os:-unicos} + ;; + iris | iris4d) + cpu=mips + vendor=sgi + case $basic_os in + irix*) + ;; + *) + basic_os=irix4 + ;; + esac + ;; + miniframe) + cpu=m68000 + vendor=convergent + ;; + *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) + cpu=m68k + vendor=atari + basic_os=mint + ;; + news-3600 | risc-news) + cpu=mips + vendor=sony + basic_os=newsos + ;; + next | m*-next) + cpu=m68k + vendor=next + case $basic_os in + openstep*) + ;; + nextstep*) + ;; + ns2*) + basic_os=nextstep2 + ;; + *) + basic_os=nextstep3 + ;; + esac + ;; + np1) + cpu=np1 + vendor=gould + ;; + op50n-* | op60c-*) + cpu=hppa1.1 + vendor=oki + basic_os=proelf + ;; + pa-hitachi) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + pbd) + cpu=sparc + vendor=tti + ;; + pbb) + cpu=m68k + vendor=tti + ;; + pc532) + cpu=ns32k + vendor=pc532 + ;; + pn) + cpu=pn + vendor=gould + ;; + power) + cpu=power + vendor=ibm + ;; + ps2) + cpu=i386 + vendor=ibm + ;; + rm[46]00) + cpu=mips + vendor=siemens + ;; + rtpc | rtpc-*) + cpu=romp + vendor=ibm + ;; + sde) + cpu=mipsisa32 + vendor=sde + basic_os=${basic_os:-elf} + ;; + simso-wrs) + cpu=sparclite + vendor=wrs + basic_os=vxworks + ;; + tower | tower-32) + cpu=m68k + vendor=ncr + ;; + vpp*|vx|vx-*) + cpu=f301 + vendor=fujitsu + ;; + w65) + cpu=w65 + vendor=wdc + ;; + w89k-*) + cpu=hppa1.1 + vendor=winbond + basic_os=proelf + ;; + none) + cpu=none + vendor=none + ;; + leon|leon[3-9]) + cpu=sparc + vendor=$basic_machine + ;; + leon-*|leon[3-9]-*) + cpu=sparc + vendor=`echo "$basic_machine" | sed 's/-.*//'` + ;; + + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read cpu vendor <&2 + exit 1 + ;; + esac + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $vendor in + digital*) + vendor=dec + ;; + commodore*) + vendor=cbm + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if test x$basic_os != x +then + +# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just +# set os. +case $basic_os in + gnu/linux*) + kernel=linux + os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` + ;; + os2-emx) + kernel=os2 + os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` + ;; + nto-qnx*) + kernel=nto + os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` + ;; + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read kernel os <&2 + exit 1 + ;; +esac + +# As a final step for OS-related things, validate the OS-kernel combination +# (given a valid OS), if there is a kernel. +case $kernel-$os in + linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ + | linux-musl* | linux-relibc* | linux-uclibc* ) + ;; + uclinux-uclibc* ) + ;; + -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* ) + # These are just libc implementations, not actual OSes, and thus + # require a kernel. + echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 + exit 1 + ;; + kfreebsd*-gnu* | kopensolaris*-gnu*) + ;; + vxworks-simlinux | vxworks-simwindows | vxworks-spe) + ;; + nto-qnx*) + ;; + os2-emx) + ;; + *-eabi* | *-gnueabi*) + ;; + -*) + # Blank kernel with real OS is always fine. + ;; + *-*) + echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 + exit 1 + ;; +esac + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +case $vendor in + unknown) + case $cpu-$os in + *-riscix*) + vendor=acorn + ;; + *-sunos*) + vendor=sun + ;; + *-cnk* | *-aix*) + vendor=ibm + ;; + *-beos*) + vendor=be + ;; + *-hpux*) + vendor=hp + ;; + *-mpeix*) + vendor=hp + ;; + *-hiux*) + vendor=hitachi + ;; + *-unos*) + vendor=crds + ;; + *-dgux*) + vendor=dg + ;; + *-luna*) + vendor=omron + ;; + *-genix*) + vendor=ns + ;; + *-clix*) + vendor=intergraph + ;; + *-mvs* | *-opened*) + vendor=ibm + ;; + *-os400*) + vendor=ibm + ;; + s390-* | s390x-*) + vendor=ibm + ;; + *-ptx*) + vendor=sequent + ;; + *-tpf*) + vendor=ibm + ;; + *-vxsim* | *-vxworks* | *-windiss*) + vendor=wrs + ;; + *-aux*) + vendor=apple + ;; + *-hms*) + vendor=hitachi + ;; + *-mpw* | *-macos*) + vendor=apple + ;; + *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) + vendor=atari + ;; + *-vos*) + vendor=stratus + ;; + esac + ;; +esac + +echo "$cpu-$vendor-${kernel:+$kernel-}$os" +exit + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/build-aux/depcomp b/debian/pinentry-tqt/pinentry-tqt-1.2.1/build-aux/depcomp similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/build-aux/depcomp rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/build-aux/depcomp diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/build-aux/git-log-fix b/debian/pinentry-tqt/pinentry-tqt-1.2.1/build-aux/git-log-fix similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/build-aux/git-log-fix rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/build-aux/git-log-fix diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/build-aux/git-log-footer b/debian/pinentry-tqt/pinentry-tqt-1.2.1/build-aux/git-log-footer similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/build-aux/git-log-footer rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/build-aux/git-log-footer diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/build-aux/gitlog-to-changelog b/debian/pinentry-tqt/pinentry-tqt-1.2.1/build-aux/gitlog-to-changelog similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/build-aux/gitlog-to-changelog rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/build-aux/gitlog-to-changelog diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/build-aux/install-sh b/debian/pinentry-tqt/pinentry-tqt-1.2.1/build-aux/install-sh similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/build-aux/install-sh rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/build-aux/install-sh diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/build-aux/mdate-sh b/debian/pinentry-tqt/pinentry-tqt-1.2.1/build-aux/mdate-sh similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/build-aux/mdate-sh rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/build-aux/mdate-sh diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/build-aux/missing b/debian/pinentry-tqt/pinentry-tqt-1.2.1/build-aux/missing similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/build-aux/missing rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/build-aux/missing diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/build-aux/texinfo.tex b/debian/pinentry-tqt/pinentry-tqt-1.2.1/build-aux/texinfo.tex similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/build-aux/texinfo.tex rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/build-aux/texinfo.tex diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/config.h.in b/debian/pinentry-tqt/pinentry-tqt-1.2.1/config.h.in similarity index 87% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/config.h.in rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/config.h.in index 64923286..a298744b 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/config.h.in +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/config.h.in @@ -31,8 +31,8 @@ /* Defined if the mlock() call does not work */ #undef HAVE_BROKEN_MLOCK -/* Defined if a `byte' is typedef'd */ -#undef HAVE_BYTE_TYPEDEF +/* Define to 1 if the system has the type `byte'. */ +#undef HAVE_BYTE /* Defined if we run on some of the PCDOS like systems (DOS, Windoze. OS/2) with special properties like no file modes */ @@ -41,7 +41,10 @@ /* Defined if the OS supports drive letters. */ #undef HAVE_DRIVE_LETTERS -/* Define if you have the iconv() function. */ +/* Define to 1 if you have the `getpagesize' function. */ +#undef HAVE_GETPAGESIZE + +/* Define if you have the iconv() function and it works. */ #undef HAVE_ICONV /* Define to 1 if you have the header file. */ @@ -71,12 +74,12 @@ /* Define if you have working ncursesw */ #undef HAVE_NCURSESW -/* Define to 1 if you have the `plock' function. */ -#undef HAVE_PLOCK - /* Define to 1 if you have the `seteuid' function. */ #undef HAVE_SETEUID +/* Define to 1 if you have the `stat' function. */ +#undef HAVE_STAT + /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H @@ -92,6 +95,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H +/* Define to 1 if you have the `sysconf' function. */ +#undef HAVE_SYSCONF + /* Define to 1 if you have the header file. */ #undef HAVE_SYS_MMAN_H @@ -104,8 +110,11 @@ /* Define to 1 if you have the header file. */ #undef HAVE_TERMIO_H -/* Defined if a `ulong' is typedef'd */ -#undef HAVE_ULONG_TYPEDEF +/* Define to 1 if the system has the type `u64'. */ +#undef HAVE_U64 + +/* Define to 1 if the system has the type `ulong'. */ +#undef HAVE_ULONG /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H @@ -122,6 +131,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_WCHAR_H +/* The pinentries can optionally use x11. */ +#undef HAVE_X11 + /* Define as const if the declaration of iconv() needs const. */ #undef ICONV_CONST @@ -158,15 +170,21 @@ /* The qt version of Pinentry is to be build */ #undef PINENTRY_QT +/* The qt4 version of Pinentry is to be build */ +#undef PINENTRY_QT4 + +/* pinentry-qt should use KF5WaylandClient. */ +#undef PINENTRY_QT_WAYLAND + +/* pinentry-qt should use x11. */ +#undef PINENTRY_QT_X11 + /* The TTY version of Pinentry is to be build */ #undef PINENTRY_TTY /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS -/* The capabilities support library is installed */ -#undef USE_CAPABILITIES - /* Set this to limit filenames to the 8.3 format */ #undef USE_ONLY_8DOT3 diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/configure b/debian/pinentry-tqt/pinentry-tqt-1.2.1/configure similarity index 88% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/configure rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/configure index ac493e63..25c1c65c 100755 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/configure +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for pinentry 1.1.0. +# Generated by GNU Autoconf 2.69 for pinentry 1.2.1. # # Report bugs to . # @@ -580,8 +580,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='pinentry' PACKAGE_TARNAME='pinentry' -PACKAGE_VERSION='1.1.0' -PACKAGE_STRING='pinentry 1.1.0' +PACKAGE_VERSION='1.2.1' +PACKAGE_STRING='pinentry 1.2.1' PACKAGE_BUGREPORT='https://bugs.gnupg.org' PACKAGE_URL='' @@ -626,6 +626,8 @@ ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS +BUILD_DOC_FALSE +BUILD_DOC_TRUE PINENTRY_DEFAULT BUILD_PINENTRY_FLTK_FALSE BUILD_PINENTRY_FLTK_TRUE @@ -640,15 +642,31 @@ BUILD_PINENTRY_TQT_TRUE TQT_MOC PINENTRY_TQT_LIBS PINENTRY_TQT_CFLAGS +BUILD_PINENTRY_QT4_FALSE +BUILD_PINENTRY_QT4_TRUE +PINENTRY_QT4_LDFLAGS +MOC42 +MOC4 +PINENTRY_QT4_LIBS +PINENTRY_QT4_CFLAGS BUILD_PINENTRY_QT_FALSE BUILD_PINENTRY_QT_TRUE +PINENTRY_QT_LDFLAGS +RCC2 +RCC QTCHOOSER MOC2 MOC +PINENTRY_QT_X11_EXTRAS_LIBS +PINENTRY_QT_X11_EXTRAS_CFLAGS PINENTRY_QT_REQUIRE_CPP11_LIBS PINENTRY_QT_REQUIRE_CPP11_CFLAGS PINENTRY_QT_LIBS PINENTRY_QT_CFLAGS +KF5WAYLANDCLIENT_LIBS +KF5WAYLANDCLIENT_CFLAGS +LIBX11_LIBS +LIBX11_CFLAGS BUILD_WITH_LIBSECRET_FALSE BUILD_WITH_LIBSECRET_TRUE LIBSECRET_LIBS @@ -661,6 +679,10 @@ BUILD_PINENTRY_GTK_2_FALSE BUILD_PINENTRY_GTK_2_TRUE GTK2_LIBS GTK2_CFLAGS +BUILD_PINENTRY_EFL_FALSE +BUILD_PINENTRY_EFL_TRUE +EFL_LIBS +EFL_CFLAGS INSIDE_EMACS_FALSE INSIDE_EMACS_TRUE BUILD_PINENTRY_EMACS_FALSE @@ -683,8 +705,6 @@ LIBNCURSES NCURSES_INCLUDE NCURSES_LIBS NCURSES_CFLAGS -LIBCAP -SETCAP LIBASSUAN_LIBS LIBASSUAN_CFLAGS LIBASSUAN_CONFIG @@ -692,6 +712,7 @@ GPG_ERROR_MT_LIBS GPG_ERROR_MT_CFLAGS GPG_ERROR_LIBS GPG_ERROR_CFLAGS +GPGRT_CONFIG GPG_ERROR_CONFIG COMMON_LIBS COMMON_CFLAGS @@ -733,7 +754,6 @@ am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE -am__quote am__include DEPDIR OBJEXT @@ -789,6 +809,7 @@ infodir docdir oldincludedir includedir +runstatedir localstatedir sharedstatedir sysconfdir @@ -807,7 +828,8 @@ PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR -SHELL' +SHELL +am__quote' ac_subst_files='' ac_user_opts=' enable_option_checking @@ -817,7 +839,6 @@ enable_maintainer_mode with_libgpg_error_prefix with_gpg_error_prefix with_libassuan_prefix -with_libcap enable_pinentry_curses enable_fallback_curses enable_ncurses @@ -828,13 +849,16 @@ enable_rpath with_libiconv_prefix enable_pinentry_emacs enable_inside_emacs +enable_pinentry_efl enable_pinentry_gtk2 enable_pinentry_gnome3 enable_libsecret enable_pinentry_qt enable_pinentry_qt5 +enable_pinentry_qt4 enable_pinentry_tqt enable_pinentry_fltk +enable_doc ' ac_precious_vars='build_alias host_alias @@ -851,16 +875,26 @@ CCC PKG_CONFIG NCURSES_CFLAGS NCURSES_LIBS +EFL_CFLAGS +EFL_LIBS GTK2_CFLAGS GTK2_LIBS GNOME3_CFLAGS GNOME3_LIBS LIBSECRET_CFLAGS LIBSECRET_LIBS +LIBX11_CFLAGS +LIBX11_LIBS +KF5WAYLANDCLIENT_CFLAGS +KF5WAYLANDCLIENT_LIBS PINENTRY_QT_CFLAGS PINENTRY_QT_LIBS PINENTRY_QT_REQUIRE_CPP11_CFLAGS PINENTRY_QT_REQUIRE_CPP11_LIBS +PINENTRY_QT_X11_EXTRAS_CFLAGS +PINENTRY_QT_X11_EXTRAS_LIBS +PINENTRY_QT4_CFLAGS +PINENTRY_QT4_LIBS PINENTRY_TQT_CFLAGS PINENTRY_TQT_LIBS' @@ -901,6 +935,7 @@ datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' +runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' @@ -1153,6 +1188,15 @@ do | -silent | --silent | --silen | --sile | --sil) silent=yes ;; + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ @@ -1290,7 +1334,7 @@ fi for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir + libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. @@ -1403,7 +1447,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures pinentry 1.1.0 to adapt to many kinds of systems. +\`configure' configures pinentry 1.2.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1443,6 +1487,7 @@ Fine tuning of the installation directories: --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] @@ -1473,7 +1518,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of pinentry 1.1.0:";; + short | recursive ) echo "Configuration of pinentry 1.2.1:";; esac cat <<\_ACEOF @@ -1499,14 +1544,17 @@ Optional Features: --disable-rpath do not hardcode runtime library paths --enable-pinentry-emacs build emacs pinentry --enable-inside-emacs include emacs hack + --enable-pinentry-efl build EFL pinentry --enable-pinentry-gtk2 build GTK+-2 pinentry --enable-pinentry-gnome3 build GNOME 3 pinentry --enable-libsecret optionally cache passphrases using libsecret - --enable-pinentry-qt build qt pinentry + --enable-pinentry-qt build Qt5 pinentry --disable-pinentry-qt5 Don't use qt5 even if it is available. + --enable-pinentry-qt4 build Qt4 pinentry --enable-pinentry-tqt build tqt pinentry --enable-pinentry-fltk build FLTK 1.3 pinentry + --disable-doc do not build the documentation Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -1516,14 +1564,11 @@ Optional Packages: --with-libassuan-prefix=PFX prefix where LIBASSUAN is installed (optional) - --without-libcap Disable support for capabilities library --with-ncurses-include-dir=DIR - Set directory containing the include files for - use with -lncurses, when it isn't installed as - the default curses library. If DIR is "none", - then no special ncurses include files are used. - --without-ncurses-include-dir - Equivalent to --with-ncurses-include-dir=none + Set directory containing the include files for use + with -lncurses, when it isn't installed as the + default curses library. If DIR is "none", then no + special ncurses include files are used. --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib --without-libiconv-prefix don't search for libiconv in includedir and libdir @@ -1544,6 +1589,8 @@ Some influential environment variables: C compiler flags for NCURSES, overriding pkg-config NCURSES_LIBS linker flags for NCURSES, overriding pkg-config + EFL_CFLAGS C compiler flags for EFL, overriding pkg-config + EFL_LIBS linker flags for EFL, overriding pkg-config GTK2_CFLAGS C compiler flags for GTK2, overriding pkg-config GTK2_LIBS linker flags for GTK2, overriding pkg-config GNOME3_CFLAGS @@ -1553,6 +1600,13 @@ Some influential environment variables: C compiler flags for LIBSECRET, overriding pkg-config LIBSECRET_LIBS linker flags for LIBSECRET, overriding pkg-config + LIBX11_CFLAGS + C compiler flags for LIBX11, overriding pkg-config + LIBX11_LIBS linker flags for LIBX11, overriding pkg-config + KF5WAYLANDCLIENT_CFLAGS + C compiler flags for KF5WAYLANDCLIENT, overriding pkg-config + KF5WAYLANDCLIENT_LIBS + linker flags for KF5WAYLANDCLIENT, overriding pkg-config PINENTRY_QT_CFLAGS C compiler flags for PINENTRY_QT, overriding pkg-config PINENTRY_QT_LIBS @@ -1563,6 +1617,15 @@ Some influential environment variables: PINENTRY_QT_REQUIRE_CPP11_LIBS linker flags for PINENTRY_QT_REQUIRE_CPP11, overriding pkg-config + PINENTRY_QT_X11_EXTRAS_CFLAGS + C compiler flags for PINENTRY_QT_X11_EXTRAS, overriding + pkg-config + PINENTRY_QT_X11_EXTRAS_LIBS + linker flags for PINENTRY_QT_X11_EXTRAS, overriding pkg-config + PINENTRY_QT4_CFLAGS + C compiler flags for PINENTRY_QT4, overriding pkg-config + PINENTRY_QT4_LIBS + linker flags for PINENTRY_QT4, overriding pkg-config PINENTRY_TQT_CFLAGS C compiler flags for PINENTRY_TQT, overriding pkg-config PINENTRY_TQT_LIBS @@ -1634,7 +1697,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -pinentry configure 1.1.0 +pinentry configure 1.2.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2091,11 +2154,65 @@ $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_find_uintX_t + +# ac_fn_c_check_type LINENO TYPE VAR INCLUDES +# ------------------------------------------- +# Tests whether TYPE exists after having included INCLUDES, setting cache +# variable VAR accordingly. +ac_fn_c_check_type () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=no" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +if (sizeof ($2)) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +if (sizeof (($2))) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + eval "$3=yes" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_type cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by pinentry $as_me 1.1.0, which was +It was created by pinentry $as_me 1.2.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2476,7 +2593,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. ac_config_headers="$ac_config_headers config.h" -am__api_version='1.14' +am__api_version='1.16' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or @@ -2652,12 +2769,7 @@ program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` am_aux_dir=`cd "$ac_aux_dir" && pwd` if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac + MISSING="\${SHELL} '$am_aux_dir/missing'" fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then @@ -2668,7 +2780,7 @@ else $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi -if test x"${install_sh}" != xset; then +if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; @@ -2962,7 +3074,7 @@ fi # Define the identity of the package. PACKAGE='pinentry' - VERSION='1.1.0' + VERSION='1.2.1' cat >>confdefs.h <<_ACEOF @@ -2992,12 +3104,12 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: -# -# +# +# mkdir_p='$(MKDIR_P)' -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' @@ -3044,7 +3156,7 @@ END Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . +that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM @@ -3060,45 +3172,45 @@ DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" - -am_make=${MAKE-make} -cat > confinc << 'END' +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 +$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; } +cat > confinc.mk << 'END' am__doit: - @echo this is the am__doit target + @echo this is the am__doit target >confinc.out .PHONY: am__doit END -# If we don't find an include directive, just comment out the code. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 -$as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD +# BSD make does it like this. +echo '.include "confinc.mk" # ignored' > confmf.BSD +# Other make implementations (GNU, Solaris 10, AIX) do it like this. +echo 'include confinc.mk # ignored' > confmf.GNU +_am_result=no +for s in GNU BSD; do + { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5 + (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + case $?:`cat confinc.out 2>/dev/null` in #( + '0:this is the am__doit target') : + case $s in #( + BSD) : + am__include='.include' am__quote='"' ;; #( + *) : + am__include='include' am__quote='' ;; +esac ;; #( + *) : ;; - esac -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 -$as_echo "$_am_result" >&6; } -rm -f confinc confmf +esac + if test "$am__include" != "#"; then + _am_result="yes ($s style)" + break + fi +done +rm -f confinc.* confmf.* +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 +$as_echo "${_am_result}" >&6; } # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : @@ -4556,7 +4668,6 @@ $as_echo "$ac_cv_safe_to_define___extensions__" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } # Check whether --enable-maintainer-mode was given. @@ -6620,118 +6731,6 @@ fi # Checks for header files. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if ${ac_cv_header_stdc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -$as_echo "#define STDC_HEADERS 1" >>confdefs.h - -fi - for ac_header in string.h unistd.h langinfo.h termio.h locale.h utime.h wchar.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` @@ -6746,7 +6745,7 @@ fi done -for ac_func in seteuid stpcpy mmap +for ac_func in seteuid stpcpy mmap stat do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -6846,18 +6845,18 @@ int main () { - int i; +int i; - /* glibc defines this for functions which it implements - * to always fail with ENOSYS. Some functions are actually - * named something starting with __ and the normal name - * is an alias. */ - #if defined (__stub_mlock) || defined (__stub___mlock) - choke me - #else - mlock(&i, 4); - #endif - ; return 0; +/* glibc defines this for functions which it implements + * to always fail with ENOSYS. Some functions are actually + * named something starting with __ and the normal name + * is an alias. */ +#if defined (__stub_mlock) || defined (__stub___mlock) +choke me +#else +mlock(&i, 4); +#endif +; return 0; ; return 0; @@ -6881,6 +6880,18 @@ $as_echo "#define HAVE_MLOCK 1" >>confdefs.h fi fi if test "$ac_cv_func_mlock" = "yes"; then + for ac_func in sysconf getpagesize +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mlock is broken" >&5 $as_echo_n "checking whether mlock is broken... " >&6; } if ${gnupg_cv_have_broken_mlock+:} false; then : @@ -6893,31 +6904,41 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - #include - #include - #include - #include - #include - #include +#include +#include +#include +#include +#include +#include - int main() - { - char *pool; - int err; - long int pgsize = getpagesize(); +int main() +{ + char *pool; + int err; + long int pgsize; + +#if defined(HAVE_SYSCONF) && defined(_SC_PAGESIZE) + pgsize = sysconf (_SC_PAGESIZE); +#elif defined (HAVE_GETPAGESIZE) + pgsize = getpagesize(); +#else + pgsize = -1; +#endif - pool = malloc( 4096 + pgsize ); - if( !pool ) - return 2; - pool += (pgsize - ((long int)pool % pgsize)); + if (pgsize == -1) + pgsize = 4096; - err = mlock( pool, 4096 ); - if( !err || errno == EPERM ) - return 0; /* okay */ + pool = malloc( 4096 + pgsize ); + if( !pool ) + return 2; + pool += (pgsize - ((size_t)pool % pgsize)); - return 1; /* hmmm */ - } + err = mlock( pool, 4096 ); + if( !err || errno == EPERM || errno == EAGAIN) + return 0; /* okay */ + return 1; /* hmmm */ +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : @@ -6938,17 +6959,6 @@ $as_echo "#define HAVE_BROKEN_MLOCK 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - for ac_func in plock -do : - ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" -if test "x$ac_cv_func_plock" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_PLOCK 1 -_ACEOF - -fi -done - else if test "$gnupg_cv_have_broken_mlock" = "no"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -7067,16 +7077,131 @@ fi min_gpg_error_version="$NEED_GPG_ERROR_VERSION" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GPG Error - version >= $min_gpg_error_version" >&5 -$as_echo_n "checking for GPG Error - version >= $min_gpg_error_version... " >&6; } ok=no - if test "$GPG_ERROR_CONFIG" != "no" \ - && test -f "$GPG_ERROR_CONFIG" ; then + + # Extract the first word of "gpgrt-config", so it can be a program name with args. +set dummy gpgrt-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_GPGRT_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GPGRT_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_GPGRT_CONFIG="$GPGRT_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_dummy="$prefix/bin:$PATH" +for as_dir in $as_dummy +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GPGRT_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_GPGRT_CONFIG" && ac_cv_path_GPGRT_CONFIG="no" + ;; +esac +fi +GPGRT_CONFIG=$ac_cv_path_GPGRT_CONFIG +if test -n "$GPGRT_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GPGRT_CONFIG" >&5 +$as_echo "$GPGRT_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test "$GPGRT_CONFIG" != "no"; then + # Determine gpgrt_libdir + # + # Get the prefix of gpgrt-config assuming it's something like: + # /bin/gpgrt-config + gpgrt_prefix=${GPGRT_CONFIG%/*/*} + possible_libdir1=${gpgrt_prefix}/lib + # Determine by using system libdir-format with CC, it's like: + # Normal style: /usr/lib + # GNU cross style: /usr//lib + # Debian style: /usr/lib/ + # Fedora/openSUSE style: /usr/lib, /usr/lib32 or /usr/lib64 + # It is assumed that CC is specified to the one of host on cross build. + if libdir_candidates=$(${CC:-cc} -print-search-dirs | \ + sed -n -e "/^libraries/{s/libraries: =//;s/:/\\ +/g;p;}"); then + # From the output of -print-search-dirs, select valid pkgconfig dirs. + libdir_candidates=$(for dir in $libdir_candidates; do + if p=$(cd $dir 2>/dev/null && pwd); then + test -d "$p/pkgconfig" && echo $p; + fi + done) + + for possible_libdir0 in $libdir_candidates; do + # possible_libdir0: + # Fallback candidate, the one of system-installed (by $CC) + # (/usr//lib, /usr/lib/ or /usr/lib32) + # possible_libdir1: + # Another candidate, user-locally-installed + # (/lib) + # possible_libdir2 + # Most preferred + # (//lib, + # /lib/ or /lib32) + if test "${possible_libdir0##*/}" = "lib"; then + possible_prefix0=${possible_libdir0%/lib} + possible_prefix0_triplet=${possible_prefix0##*/} + if test -z "$possible_prefix0_triplet"; then + continue + fi + possible_libdir2=${gpgrt_prefix}/$possible_prefix0_triplet/lib + else + possible_prefix0=${possible_libdir0%%/lib*} + possible_libdir2=${gpgrt_prefix}${possible_libdir0#$possible_prefix0} + fi + if test -f ${possible_libdir2}/pkgconfig/gpg-error.pc; then + gpgrt_libdir=${possible_libdir2} + elif test -f ${possible_libdir1}/pkgconfig/gpg-error.pc; then + gpgrt_libdir=${possible_libdir1} + elif test -f ${possible_libdir0}/pkgconfig/gpg-error.pc; then + gpgrt_libdir=${possible_libdir0} + fi + if test -n "$gpgrt_libdir"; then break; fi + done + else + # When we cannot determine system libdir-format, use this: + gpgrt_libdir=${possible_libdir1} + fi + else + unset GPGRT_CONFIG + fi + + if test -n "$gpgrt_libdir"; then + GPGRT_CONFIG="$GPGRT_CONFIG --libdir=$gpgrt_libdir" + if $GPGRT_CONFIG gpg-error >/dev/null 2>&1; then + GPG_ERROR_CONFIG="$GPGRT_CONFIG gpg-error" + { $as_echo "$as_me:${as_lineno-$LINENO}: Use gpgrt-config with $gpgrt_libdir as gpg-error-config" >&5 +$as_echo "$as_me: Use gpgrt-config with $gpgrt_libdir as gpg-error-config" >&6;} + gpg_error_config_version=`$GPG_ERROR_CONFIG --modversion` + else + unset GPGRT_CONFIG + fi + elif test "$GPG_ERROR_CONFIG" != "no"; then + gpg_error_config_version=`$GPG_ERROR_CONFIG --version` + unset GPGRT_CONFIG + fi + if test "$GPG_ERROR_CONFIG" != "no"; then req_major=`echo $min_gpg_error_version | \ sed 's/\([0-9]*\)\.\([0-9]*\)/\1/'` req_minor=`echo $min_gpg_error_version | \ sed 's/\([0-9]*\)\.\([0-9]*\)/\2/'` - gpg_error_config_version=`$GPG_ERROR_CONFIG $gpg_error_config_args --version` major=`echo $gpg_error_config_version | \ sed 's/\([0-9]*\)\.\([0-9]*\).*/\1/'` minor=`echo $gpg_error_config_version | \ @@ -7091,31 +7216,44 @@ $as_echo_n "checking for GPG Error - version >= $min_gpg_error_version... " >&6; fi fi fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GPG Error - version >= $min_gpg_error_version" >&5 +$as_echo_n "checking for GPG Error - version >= $min_gpg_error_version... " >&6; } if test $ok = yes; then - GPG_ERROR_CFLAGS=`$GPG_ERROR_CONFIG $gpg_error_config_args --cflags` - GPG_ERROR_LIBS=`$GPG_ERROR_CONFIG $gpg_error_config_args --libs` - GPG_ERROR_MT_CFLAGS=`$GPG_ERROR_CONFIG $gpg_error_config_args --mt --cflags 2>/dev/null` - GPG_ERROR_MT_LIBS=`$GPG_ERROR_CONFIG $gpg_error_config_args --mt --libs 2>/dev/null` + GPG_ERROR_CFLAGS=`$GPG_ERROR_CONFIG --cflags` + GPG_ERROR_LIBS=`$GPG_ERROR_CONFIG --libs` + if test -z "$GPGRT_CONFIG"; then + GPG_ERROR_MT_CFLAGS=`$GPG_ERROR_CONFIG --mt --cflags 2>/dev/null` + GPG_ERROR_MT_LIBS=`$GPG_ERROR_CONFIG --mt --libs 2>/dev/null` + else + GPG_ERROR_MT_CFLAGS=`$GPG_ERROR_CONFIG --variable=mtcflags 2>/dev/null` + GPG_ERROR_MT_CFLAGS="$GPG_ERROR_CFLAGS${GPG_ERROR_CFLAGS:+ }$GPG_ERROR_MT_CFLAGS" + GPG_ERROR_MT_LIBS=`$GPG_ERROR_CONFIG --variable=mtlibs 2>/dev/null` + GPG_ERROR_MT_LIBS="$GPG_ERROR_LIBS${GPG_ERROR_LIBS:+ }$GPG_ERROR_MT_LIBS" + fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes ($gpg_error_config_version)" >&5 $as_echo "yes ($gpg_error_config_version)" >&6; } have_gpg_error=yes - gpg_error_config_host=`$GPG_ERROR_CONFIG $gpg_error_config_args --host 2>/dev/null || echo none` + if test -z "$GPGRT_CONFIG"; then + gpg_error_config_host=`$GPG_ERROR_CONFIG --host 2>/dev/null || echo none` + else + gpg_error_config_host=`$GPG_ERROR_CONFIG --variable=host 2>/dev/null || echo none` + fi if test x"$gpg_error_config_host" != xnone ; then if test x"$gpg_error_config_host" != x"$host" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** -*** The config script $GPG_ERROR_CONFIG was +*** The config script \"$GPG_ERROR_CONFIG\" was *** built for $gpg_error_config_host and thus may not match the *** used host $host. -*** You may want to use the configure option --with-gpg-error-prefix +*** You may want to use the configure option --with-libgpg-error-prefix *** to specify a matching config script or use \$SYSROOT. ***" >&5 $as_echo "$as_me: WARNING: *** -*** The config script $GPG_ERROR_CONFIG was +*** The config script \"$GPG_ERROR_CONFIG\" was *** built for $gpg_error_config_host and thus may not match the *** used host $host. -*** You may want to use the configure option --with-gpg-error-prefix +*** You may want to use the configure option --with-libgpg-error-prefix *** to specify a matching config script or use \$SYSROOT. ***" >&2;} gpg_config_script_warn="$gpg_config_script_warn libgpg-error" @@ -7167,29 +7305,23 @@ else fi if test x$libassuan_config_prefix != x ; then - libassuan_config_args="$libassuan_config_args --prefix=$libassuan_config_prefix" if test x${LIBASSUAN_CONFIG+set} != xset ; then LIBASSUAN_CONFIG=$libassuan_config_prefix/bin/libassuan-config fi - else - case "${SYSROOT}" in - /*) - if test -x "${SYSROOT}/bin/libassuan-config" ; then - LIBASSUAN_CONFIG="${SYSROOT}/bin/libassuan-config" - fi - ;; - '') - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring \$SYSROOT as it is not an absolute path." >&5 -$as_echo "$as_me: WARNING: Ignoring \$SYSROOT as it is not an absolute path." >&2;} - ;; - esac fi - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}libassuan-config", so it can be a program name with args. -set dummy ${ac_tool_prefix}libassuan-config; ac_word=$2 + use_gpgrt_config="" + if test x"${LIBASSUAN_CONFIG}" = x -a x"$GPGRT_CONFIG" != x -a "$GPGRT_CONFIG" != "no"; then + if $GPGRT_CONFIG libassuan --exists; then + LIBASSUAN_CONFIG="$GPGRT_CONFIG libassuan" + { $as_echo "$as_me:${as_lineno-$LINENO}: Use gpgrt-config as libassuan-config" >&5 +$as_echo "$as_me: Use gpgrt-config as libassuan-config" >&6;} + use_gpgrt_config=yes + fi + fi + if test -z "$use_gpgrt_config"; then + # Extract the first word of "libassuan-config", so it can be a program name with args. +set dummy libassuan-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_LIBASSUAN_CONFIG+:} false; then : @@ -7215,6 +7347,7 @@ done done IFS=$as_save_IFS + test -z "$ac_cv_path_LIBASSUAN_CONFIG" && ac_cv_path_LIBASSUAN_CONFIG="no" ;; esac fi @@ -7228,63 +7361,7 @@ $as_echo "no" >&6; } fi -fi -if test -z "$ac_cv_path_LIBASSUAN_CONFIG"; then - ac_pt_LIBASSUAN_CONFIG=$LIBASSUAN_CONFIG - # Extract the first word of "libassuan-config", so it can be a program name with args. -set dummy libassuan-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_ac_pt_LIBASSUAN_CONFIG+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $ac_pt_LIBASSUAN_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_ac_pt_LIBASSUAN_CONFIG="$ac_pt_LIBASSUAN_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_ac_pt_LIBASSUAN_CONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -ac_pt_LIBASSUAN_CONFIG=$ac_cv_path_ac_pt_LIBASSUAN_CONFIG -if test -n "$ac_pt_LIBASSUAN_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_LIBASSUAN_CONFIG" >&5 -$as_echo "$ac_pt_LIBASSUAN_CONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_pt_LIBASSUAN_CONFIG" = x; then - LIBASSUAN_CONFIG="no" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - LIBASSUAN_CONFIG=$ac_pt_LIBASSUAN_CONFIG fi -else - LIBASSUAN_CONFIG="$ac_cv_path_LIBASSUAN_CONFIG" -fi - tmp="$NEED_LIBASSUAN_API:$NEED_LIBASSUAN_VERSION" if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then @@ -7298,8 +7375,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBASSUAN - version >= $min_libassuan_version" >&5 $as_echo_n "checking for LIBASSUAN - version >= $min_libassuan_version... " >&6; } ok=no - if test "$LIBASSUAN_CONFIG" != "no" \ - && test -f "$LIBASSUAN_CONFIG" ; then + if test "$LIBASSUAN_CONFIG" != "no"; then req_major=`echo $min_libassuan_version | \ sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\1/'` req_minor=`echo $min_libassuan_version | \ @@ -7307,7 +7383,11 @@ $as_echo_n "checking for LIBASSUAN - version >= $min_libassuan_version... " >&6; req_micro=`echo $min_libassuan_version | \ sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\3/'` - libassuan_config_version=`$LIBASSUAN_CONFIG --version` + if test -z "$use_gpgrt_config"; then + libassuan_config_version=`$LIBASSUAN_CONFIG --version` + else + libassuan_config_version=`$LIBASSUAN_CONFIG --modversion` + fi major=`echo $libassuan_config_version | \ sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1/'` minor=`echo $libassuan_config_version | \ @@ -7342,7 +7422,11 @@ $as_echo "no" >&6; } if test $ok = yes; then if test "$req_libassuan_api" -gt 0 ; then - tmp=`$LIBASSUAN_CONFIG --api-version 2>/dev/null || echo 0` + if test -z "$use_gpgrt_config"; then + tmp=`$LIBASSUAN_CONFIG --api-version 2>/dev/null || echo 0` + else + tmp=`$LIBASSUAN_CONFIG --variable=api_version 2>/dev/null || echo 0` + fi if test "$tmp" -gt 0 ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBASSUAN API version" >&5 $as_echo_n "checking LIBASSUAN API version... " >&6; } @@ -7360,24 +7444,28 @@ $as_echo "does not match. want=$req_libassuan_api got=$tmp." >&6; } if test $ok = yes; then if test x"$host" != x ; then - libassuan_config_host=`$LIBASSUAN_CONFIG --host 2>/dev/null || echo none` + if test -z "$use_gpgrt_config"; then + libassuan_config_host=`$LIBASSUAN_CONFIG --host 2>/dev/null || echo none` + else + libassuan_config_host=`$LIBASSUAN_CONFIG --variable=host 2>/dev/null || echo none` + fi if test x"$libassuan_config_host" != xnone ; then if test x"$libassuan_config_host" != x"$host" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** -*** The config script $LIBASSUAN_CONFIG was +*** The config script \"$LIBASSUAN_CONFIG\" was *** built for $libassuan_config_host and thus may not match the *** used host $host. *** You may want to use the configure option --with-libassuan-prefix -*** to specify a matching config script or use \$SYSROOT. +*** to specify a matching config script. ***" >&5 $as_echo "$as_me: WARNING: *** -*** The config script $LIBASSUAN_CONFIG was +*** The config script \"$LIBASSUAN_CONFIG\" was *** built for $libassuan_config_host and thus may not match the *** used host $host. *** You may want to use the configure option --with-libassuan-prefix -*** to specify a matching config script or use \$SYSROOT. +*** to specify a matching config script. ***" >&2;} fi fi @@ -7385,8 +7473,8 @@ $as_echo "$as_me: WARNING: fi if test $ok = yes; then - LIBASSUAN_CFLAGS=`$LIBASSUAN_CONFIG $libassuan_config_args --cflags` - LIBASSUAN_LIBS=`$LIBASSUAN_CONFIG $libassuan_config_args --libs` + LIBASSUAN_CFLAGS=`$LIBASSUAN_CONFIG --cflags` + LIBASSUAN_LIBS=`$LIBASSUAN_CONFIG --libs` have_libassuan=yes else LIBASSUAN_CFLAGS="" @@ -7408,175 +7496,31 @@ COMMON_CFLAGS="$LIBASSUAN_CFLAGS $COMMON_CFLAGS" COMMON_LIBS="$LIBASSUAN_LIBS $COMMON_LIBS" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for byte typedef" >&5 -$as_echo_n "checking for byte typedef... " >&6; } - if ${gnupg_cv_typedef_byte+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#define _GNU_SOURCE 1 - #include - #include -int -main () -{ - - #undef byte - int a = sizeof(byte); - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - gnupg_cv_typedef_byte=yes -else - gnupg_cv_typedef_byte=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gnupg_cv_typedef_byte" >&5 -$as_echo "$gnupg_cv_typedef_byte" >&6; } - if test "$gnupg_cv_typedef_byte" = yes; then - -$as_echo "#define HAVE_BYTE_TYPEDEF 1" >>confdefs.h - - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ulong typedef" >&5 -$as_echo_n "checking for ulong typedef... " >&6; } - if ${gnupg_cv_typedef_ulong+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#define _GNU_SOURCE 1 - #include - #include -int -main () -{ - - #undef ulong - int a = sizeof(ulong); +ac_fn_c_check_type "$LINENO" "byte" "ac_cv_type_byte" "$ac_includes_default" +if test "x$ac_cv_type_byte" = xyes; then : - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_BYTE 1 _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - gnupg_cv_typedef_ulong=yes -else - gnupg_cv_typedef_ulong=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gnupg_cv_typedef_ulong" >&5 -$as_echo "$gnupg_cv_typedef_ulong" >&6; } - if test "$gnupg_cv_typedef_ulong" = yes; then - -$as_echo "#define HAVE_ULONG_TYPEDEF 1" >>confdefs.h - - fi - -# Check whether --with-libcap was given. -if test "${with_libcap+set}" = set; then : - withval=$with_libcap; fi +ac_fn_c_check_type "$LINENO" "ulong" "ac_cv_type_ulong" "$ac_includes_default" +if test "x$ac_cv_type_ulong" = xyes; then : +cat >>confdefs.h <<_ACEOF +#define HAVE_ULONG 1 +_ACEOF -if test "x$with_libcap" != "xno"; then - # Extract the first word of "setcap", so it can be a program name with args. -set dummy setcap; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_SETCAP+:} false; then : - $as_echo_n "(cached) " >&6 -else - case $SETCAP in - [\\/]* | ?:[\\/]*) - ac_cv_path_SETCAP="$SETCAP" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_dummy=""$PATH:/sbin:/usr/sbin"" -for as_dir in $as_dummy -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_SETCAP="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - test -z "$ac_cv_path_SETCAP" && ac_cv_path_SETCAP=":" - ;; -esac -fi -SETCAP=$ac_cv_path_SETCAP -if test -n "$SETCAP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SETCAP" >&5 -$as_echo "$SETCAP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } fi +ac_fn_c_check_type "$LINENO" "u64" "ac_cv_type_u64" "$ac_includes_default" +if test "x$ac_cv_type_u64" = xyes; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cap_set_proc in -lcap" >&5 -$as_echo_n "checking for cap_set_proc in -lcap... " >&6; } -if ${ac_cv_lib_cap_cap_set_proc+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcap $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char cap_set_proc (); -int -main () -{ -return cap_set_proc (); - ; - return 0; -} +cat >>confdefs.h <<_ACEOF +#define HAVE_U64 1 _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_cap_cap_set_proc=yes -else - ac_cv_lib_cap_cap_set_proc=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cap_cap_set_proc" >&5 -$as_echo "$ac_cv_lib_cap_cap_set_proc" >&6; } -if test "x$ac_cv_lib_cap_cap_set_proc" = xyes; then : - - -$as_echo "#define USE_CAPABILITIES 1" >>confdefs.h - LIBCAP=-lcap - -fi fi @@ -8178,6 +8122,7 @@ fi if test "${with_ncurses_include_dir+set}" = set; then : withval=$with_ncurses_include_dir; fi + if test "${with_ncurses_include_dir+set}" = set; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ncurses include dir" >&5 $as_echo_n "checking for ncurses include dir... " >&6; } @@ -9257,14 +9202,16 @@ else am_cv_lib_iconv=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ + #include #include + int main () { iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd); ; return 0; } @@ -9279,14 +9226,16 @@ rm -f core conftest.err conftest.$ac_objext \ LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ + #include #include + int main () { iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd); ; return 0; } @@ -9304,6 +9253,169 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 $as_echo "$am_cv_func_iconv" >&6; } if test "$am_cv_func_iconv" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5 +$as_echo_n "checking for working iconv... " >&6; } +if ${am_cv_func_iconv_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + + am_save_LIBS="$LIBS" + if test $am_cv_lib_iconv = yes; then + LIBS="$LIBS $LIBICONV" + fi + am_cv_func_iconv_works=no + for ac_iconv_const in '' 'const'; do + if test "$cross_compiling" = yes; then : + case "$host_os" in + aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; + *) am_cv_func_iconv_works="guessing yes" ;; + esac +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +#ifndef ICONV_CONST +# define ICONV_CONST $ac_iconv_const +#endif + +int +main () +{ +int result = 0; + /* Test against AIX 5.1 bug: Failures are not distinguishable from successful + returns. */ + { + iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); + if (cd_utf8_to_88591 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */ + char buf[10]; + ICONV_CONST char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_utf8_to_88591, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + result |= 1; + iconv_close (cd_utf8_to_88591); + } + } + /* Test against Solaris 10 bug: Failures are not distinguishable from + successful returns. */ + { + iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); + if (cd_ascii_to_88591 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\263"; + char buf[10]; + ICONV_CONST char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_ascii_to_88591, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + result |= 2; + iconv_close (cd_ascii_to_88591); + } + } + /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\304"; + static char buf[2] = { (char)0xDE, (char)0xAD }; + ICONV_CONST char *inptr = input; + size_t inbytesleft = 1; + char *outptr = buf; + size_t outbytesleft = 1; + size_t res = iconv (cd_88591_to_utf8, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) + result |= 4; + iconv_close (cd_88591_to_utf8); + } + } +#if 0 /* This bug could be worked around by the caller. */ + /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; + char buf[50]; + ICONV_CONST char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_88591_to_utf8, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if ((int)res > 0) + result |= 8; + iconv_close (cd_88591_to_utf8); + } + } +#endif + /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is + provided. */ + { + /* Try standardized names. */ + iconv_t cd1 = iconv_open ("UTF-8", "EUC-JP"); + /* Try IRIX, OSF/1 names. */ + iconv_t cd2 = iconv_open ("UTF-8", "eucJP"); + /* Try AIX names. */ + iconv_t cd3 = iconv_open ("UTF-8", "IBM-eucJP"); + /* Try HP-UX names. */ + iconv_t cd4 = iconv_open ("utf8", "eucJP"); + if (cd1 == (iconv_t)(-1) && cd2 == (iconv_t)(-1) + && cd3 == (iconv_t)(-1) && cd4 == (iconv_t)(-1)) + result |= 16; + if (cd1 != (iconv_t)(-1)) + iconv_close (cd1); + if (cd2 != (iconv_t)(-1)) + iconv_close (cd2); + if (cd3 != (iconv_t)(-1)) + iconv_close (cd3); + if (cd4 != (iconv_t)(-1)) + iconv_close (cd4); + } + return result; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + am_cv_func_iconv_works=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + test "$am_cv_func_iconv_works" = no || break + done + LIBS="$am_save_LIBS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5 +$as_echo "$am_cv_func_iconv_works" >&6; } + case "$am_cv_func_iconv_works" in + *no) am_func_iconv=no am_cv_lib_iconv=no ;; + *) am_func_iconv=yes ;; + esac + else + am_func_iconv=no am_cv_lib_iconv=no + fi + if test "$am_func_iconv" = yes; then $as_echo "#define HAVE_ICONV 1" >>confdefs.h @@ -9337,7 +9449,7 @@ extern #ifdef __cplusplus "C" #endif -#if defined(__STDC__) || defined(__cplusplus) +#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); #else size_t iconv(); @@ -9361,16 +9473,19 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi am_cv_proto_iconv=`echo "$am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${ac_t:- - }$am_cv_proto_iconv" >&5 -$as_echo "${ac_t:- - }$am_cv_proto_iconv" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: + $am_cv_proto_iconv" >&5 +$as_echo " + $am_cv_proto_iconv" >&6; } + else + am_cv_proto_iconv_arg1="" + fi cat >>confdefs.h <<_ACEOF #define ICONV_CONST $am_cv_proto_iconv_arg1 _ACEOF - fi + if test "$am_cv_func_iconv" != "yes"; then as_fn_error $? " @@ -9476,39 +9591,31 @@ fi -# Check whether --enable-pinentry-gtk2 was given. -if test "${enable_pinentry_gtk2+set}" = set; then : - enableval=$enable_pinentry_gtk2; pinentry_gtk_2=$enableval -else - pinentry_gtk_2=maybe -fi - - -# Check whether --enable-pinentry-gnome3 was given. -if test "${enable_pinentry_gnome3+set}" = set; then : - enableval=$enable_pinentry_gnome3; pinentry_gnome_3=$enableval +# Check whether --enable-pinentry-efl was given. +if test "${enable_pinentry_efl+set}" = set; then : + enableval=$enable_pinentry_efl; pinentry_efl=$enableval else - pinentry_gnome_3=maybe + pinentry_efl=maybe fi -if test "$pinentry_gtk_2" != "no"; then +if test "$pinentry_efl" != "no"; then pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gtk+-2.0 >= 2.4.0" >&5 -$as_echo_n "checking for gtk+-2.0 >= 2.4.0... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for elementary >= 1.18,ecore-x" >&5 +$as_echo_n "checking for elementary >= 1.18,ecore-x... " >&6; } if test -n "$PKG_CONFIG"; then - if test -n "$GTK2_CFLAGS"; then - pkg_cv_GTK2_CFLAGS="$GTK2_CFLAGS" + if test -n "$EFL_CFLAGS"; then + pkg_cv_EFL_CFLAGS="$EFL_CFLAGS" else if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.4.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.4.0") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"elementary >= 1.18,ecore-x\""; } >&5 + ($PKG_CONFIG --exists --print-errors "elementary >= 1.18,ecore-x") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_GTK2_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= 2.4.0" 2>/dev/null` + pkg_cv_EFL_CFLAGS=`$PKG_CONFIG --cflags "elementary >= 1.18,ecore-x" 2>/dev/null` else pkg_failed=yes fi @@ -9517,16 +9624,16 @@ else pkg_failed=untried fi if test -n "$PKG_CONFIG"; then - if test -n "$GTK2_LIBS"; then - pkg_cv_GTK2_LIBS="$GTK2_LIBS" + if test -n "$EFL_LIBS"; then + pkg_cv_EFL_LIBS="$EFL_LIBS" else if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.4.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.4.0") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"elementary >= 1.18,ecore-x\""; } >&5 + ($PKG_CONFIG --exists --print-errors "elementary >= 1.18,ecore-x") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_GTK2_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= 2.4.0" 2>/dev/null` + pkg_cv_EFL_LIBS=`$PKG_CONFIG --libs "elementary >= 1.18,ecore-x" 2>/dev/null` else pkg_failed=yes fi @@ -9545,42 +9652,166 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - GTK2_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gtk+-2.0 >= 2.4.0"` + EFL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "elementary >= 1.18,ecore-x"` else - GTK2_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-2.0 >= 2.4.0"` + EFL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "elementary >= 1.18,ecore-x"` fi # Put the nasty error message in config.log where it belongs - echo "$GTK2_PKG_ERRORS" >&5 + echo "$EFL_PKG_ERRORS" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: pkg-config could not find the module gtk+-2.0" >&5 -$as_echo "$as_me: WARNING: pkg-config could not find the module gtk+-2.0" >&2;} - pinentry_gtk_2=no + if test "$pinentry_efl" = "yes"; then + as_fn_error $? " +*** +*** efl (elementary >= 1.18, ecore-x) is required for pinentry-efl. +***" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: pkg-config could not find the modules elementary or ecore-x" >&5 +$as_echo "$as_me: WARNING: pkg-config could not find the modules elementary or ecore-x" >&2;} + fi + pinentry_efl=no elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: pkg-config could not find the module gtk+-2.0" >&5 -$as_echo "$as_me: WARNING: pkg-config could not find the module gtk+-2.0" >&2;} - pinentry_gtk_2=no + if test "$pinentry_efl" = "yes"; then + as_fn_error $? " +*** +*** efl (elementary >= 1.18, ecore-x) is required for pinentry-efl. +***" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: pkg-config could not find the modules elementary or ecore-x" >&5 +$as_echo "$as_me: WARNING: pkg-config could not find the modules elementary or ecore-x" >&2;} + fi + pinentry_efl=no else - GTK2_CFLAGS=$pkg_cv_GTK2_CFLAGS - GTK2_LIBS=$pkg_cv_GTK2_LIBS + EFL_CFLAGS=$pkg_cv_EFL_CFLAGS + EFL_LIBS=$pkg_cv_EFL_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - test "$pinentry_gtk_2" != "no" && pinentry_gtk_2=yes - test "$pinentry_gnome_3" != "no" && pinentry_gnome_3=yes + pinentry_efl=yes fi fi - if test "$pinentry_gtk_2" = "yes"; then - BUILD_PINENTRY_GTK_2_TRUE= - BUILD_PINENTRY_GTK_2_FALSE='#' + if test "$pinentry_efl" = "yes"; then + BUILD_PINENTRY_EFL_TRUE= + BUILD_PINENTRY_EFL_FALSE='#' +else + BUILD_PINENTRY_EFL_TRUE='#' + BUILD_PINENTRY_EFL_FALSE= +fi + + +# Check whether --enable-pinentry-gtk2 was given. +if test "${enable_pinentry_gtk2+set}" = set; then : + enableval=$enable_pinentry_gtk2; pinentry_gtk_2=$enableval +else + pinentry_gtk_2=maybe +fi + + +# Check whether --enable-pinentry-gnome3 was given. +if test "${enable_pinentry_gnome3+set}" = set; then : + enableval=$enable_pinentry_gnome3; pinentry_gnome_3=$enableval +else + pinentry_gnome_3=maybe +fi + + +if test "$pinentry_gtk_2" != "no"; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gtk+-2.0 >= 2.12.0" >&5 +$as_echo_n "checking for gtk+-2.0 >= 2.12.0... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$GTK2_CFLAGS"; then + pkg_cv_GTK2_CFLAGS="$GTK2_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.12.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.12.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GTK2_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= 2.12.0" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$GTK2_LIBS"; then + pkg_cv_GTK2_LIBS="$GTK2_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.12.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.12.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GTK2_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= 2.12.0" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + GTK2_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gtk+-2.0 >= 2.12.0"` + else + GTK2_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-2.0 >= 2.12.0"` + fi + # Put the nasty error message in config.log where it belongs + echo "$GTK2_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: pkg-config could not find the module gtk+-2.0" >&5 +$as_echo "$as_me: WARNING: pkg-config could not find the module gtk+-2.0" >&2;} + pinentry_gtk_2=no + + +elif test $pkg_failed = untried; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: pkg-config could not find the module gtk+-2.0" >&5 +$as_echo "$as_me: WARNING: pkg-config could not find the module gtk+-2.0" >&2;} + pinentry_gtk_2=no + + +else + GTK2_CFLAGS=$pkg_cv_GTK2_CFLAGS + GTK2_LIBS=$pkg_cv_GTK2_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + test "$pinentry_gtk_2" != "no" && pinentry_gtk_2=yes + test "$pinentry_gnome_3" != "no" && pinentry_gnome_3=yes + +fi +fi + if test "$pinentry_gtk_2" = "yes"; then + BUILD_PINENTRY_GTK_2_TRUE= + BUILD_PINENTRY_GTK_2_FALSE='#' else BUILD_PINENTRY_GTK_2_TRUE='#' BUILD_PINENTRY_GTK_2_FALSE= @@ -9793,6 +10024,182 @@ $as_echo "#define HAVE_LIBSECRET 1" >>confdefs.h COMMON_LIBS="$LIBSECRET_LIBS $COMMON_LIBS" fi +have_x11=no +if test "$have_w32_system" != "yes"; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for x11" >&5 +$as_echo_n "checking for x11... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$LIBX11_CFLAGS"; then + pkg_cv_LIBX11_CFLAGS="$LIBX11_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11\""; } >&5 + ($PKG_CONFIG --exists --print-errors "x11") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBX11_CFLAGS=`$PKG_CONFIG --cflags "x11" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$LIBX11_LIBS"; then + pkg_cv_LIBX11_LIBS="$LIBX11_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11\""; } >&5 + ($PKG_CONFIG --exists --print-errors "x11") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBX11_LIBS=`$PKG_CONFIG --libs "x11" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + LIBX11_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "x11"` + else + LIBX11_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "x11"` + fi + # Put the nasty error message in config.log where it belongs + echo "$LIBX11_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: pkg-config could not find the module x11" >&5 +$as_echo "$as_me: WARNING: pkg-config could not find the module x11" >&2;} + have_x11=no + + +elif test $pkg_failed = untried; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: pkg-config could not find the module x11" >&5 +$as_echo "$as_me: WARNING: pkg-config could not find the module x11" >&2;} + have_x11=no + + +else + LIBX11_CFLAGS=$pkg_cv_LIBX11_CFLAGS + LIBX11_LIBS=$pkg_cv_LIBX11_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + have_x11=yes +fi + + if test "$have_x11" = "yes"; then + +$as_echo "#define HAVE_X11 1" >>confdefs.h + + fi +fi + +have_kf5waylandclient=no +if test "$have_w32_system" != "yes"; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for KF5WaylandClient >= 5.60" >&5 +$as_echo_n "checking for KF5WaylandClient >= 5.60... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$KF5WAYLANDCLIENT_CFLAGS"; then + pkg_cv_KF5WAYLANDCLIENT_CFLAGS="$KF5WAYLANDCLIENT_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"KF5WaylandClient >= 5.60\""; } >&5 + ($PKG_CONFIG --exists --print-errors "KF5WaylandClient >= 5.60") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_KF5WAYLANDCLIENT_CFLAGS=`$PKG_CONFIG --cflags "KF5WaylandClient >= 5.60" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$KF5WAYLANDCLIENT_LIBS"; then + pkg_cv_KF5WAYLANDCLIENT_LIBS="$KF5WAYLANDCLIENT_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"KF5WaylandClient >= 5.60\""; } >&5 + ($PKG_CONFIG --exists --print-errors "KF5WaylandClient >= 5.60") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_KF5WAYLANDCLIENT_LIBS=`$PKG_CONFIG --libs "KF5WaylandClient >= 5.60" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + KF5WAYLANDCLIENT_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "KF5WaylandClient >= 5.60"` + else + KF5WAYLANDCLIENT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "KF5WaylandClient >= 5.60"` + fi + # Put the nasty error message in config.log where it belongs + echo "$KF5WAYLANDCLIENT_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: pkg-config could not find the module KF5WaylandClient" >&5 +$as_echo "$as_me: WARNING: pkg-config could not find the module KF5WaylandClient" >&2;} + have_kf5waylandclient=no + + +elif test $pkg_failed = untried; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: pkg-config could not find the module KF5WaylandClient" >&5 +$as_echo "$as_me: WARNING: pkg-config could not find the module KF5WaylandClient" >&2;} + have_kf5waylandclient=no + + +else + KF5WAYLANDCLIENT_CFLAGS=$pkg_cv_KF5WAYLANDCLIENT_CFLAGS + KF5WAYLANDCLIENT_LIBS=$pkg_cv_KF5WAYLANDCLIENT_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + have_kf5waylandclient=yes +fi +fi + # Check whether --enable-pinentry-qt was given. if test "${enable_pinentry_qt+set}" = set; then : enableval=$enable_pinentry_qt; pinentry_qt=$enableval @@ -9965,20 +10372,414 @@ $as_echo "yes" >&6; } require_qt_cpp11="yes" fi - if test "${require_qt_cpp11}" = "yes"; then - PINENTRY_QT_CFLAGS="$PINENTRY_QT_CFLAGS -std=c++11" + if test "${require_qt_cpp11}" = "yes"; then + PINENTRY_QT_CFLAGS="$PINENTRY_QT_CFLAGS -std=c++11" + fi + + qtlibdir=`"$PKG_CONFIG" --variable libdir Qt5Core` + if test -n "$qtlibdir"; then + if test "$enable_rpath" != "no"; then + PINENTRY_QT_LDFLAGS="$PINENTRY_QT_LDFLAGS -Wl,-rpath \"$qtlibdir\"" + fi + fi + + if test "$have_x11" = "yes"; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Qt5X11Extras >= 5.1.0" >&5 +$as_echo_n "checking for Qt5X11Extras >= 5.1.0... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$PINENTRY_QT_X11_EXTRAS_CFLAGS"; then + pkg_cv_PINENTRY_QT_X11_EXTRAS_CFLAGS="$PINENTRY_QT_X11_EXTRAS_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"Qt5X11Extras >= 5.1.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "Qt5X11Extras >= 5.1.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_PINENTRY_QT_X11_EXTRAS_CFLAGS=`$PKG_CONFIG --cflags "Qt5X11Extras >= 5.1.0" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$PINENTRY_QT_X11_EXTRAS_LIBS"; then + pkg_cv_PINENTRY_QT_X11_EXTRAS_LIBS="$PINENTRY_QT_X11_EXTRAS_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"Qt5X11Extras >= 5.1.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "Qt5X11Extras >= 5.1.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_PINENTRY_QT_X11_EXTRAS_LIBS=`$PKG_CONFIG --libs "Qt5X11Extras >= 5.1.0" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + PINENTRY_QT_X11_EXTRAS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "Qt5X11Extras >= 5.1.0"` + else + PINENTRY_QT_X11_EXTRAS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "Qt5X11Extras >= 5.1.0"` + fi + # Put the nasty error message in config.log where it belongs + echo "$PINENTRY_QT_X11_EXTRAS_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: pinentry-qt will be built without Caps Lock warning on X11" >&5 +$as_echo "$as_me: WARNING: pinentry-qt will be built without Caps Lock warning on X11" >&2;} + have_qt5_x11extras="no" + +elif test $pkg_failed = untried; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: pinentry-qt will be built without Caps Lock warning on X11" >&5 +$as_echo "$as_me: WARNING: pinentry-qt will be built without Caps Lock warning on X11" >&2;} + have_qt5_x11extras="no" + +else + PINENTRY_QT_X11_EXTRAS_CFLAGS=$pkg_cv_PINENTRY_QT_X11_EXTRAS_CFLAGS + PINENTRY_QT_X11_EXTRAS_LIBS=$pkg_cv_PINENTRY_QT_X11_EXTRAS_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + have_qt5_x11extras="yes" +fi + if test "$have_qt5_x11extras" = "yes"; then + PINENTRY_QT_CFLAGS="$LIBX11_CFLAGS $PINENTRY_QT_CFLAGS $PINENTRY_QT_X11_EXTRAS_CFLAGS" + PINENTRY_QT_LIBS="$LIBX11_LIBS $PINENTRY_QT_LIBS $PINENTRY_QT_X11_EXTRAS_LIBS" + fi + fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}moc", so it can be a program name with args. +set dummy ${ac_tool_prefix}moc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_MOC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$MOC"; then + ac_cv_prog_MOC="$MOC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_MOC="${ac_tool_prefix}moc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +MOC=$ac_cv_prog_MOC +if test -n "$MOC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MOC" >&5 +$as_echo "$MOC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_MOC"; then + ac_ct_MOC=$MOC + # Extract the first word of "moc", so it can be a program name with args. +set dummy moc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_MOC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_MOC"; then + ac_cv_prog_ac_ct_MOC="$ac_ct_MOC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_MOC="moc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_MOC=$ac_cv_prog_ac_ct_MOC +if test -n "$ac_ct_MOC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MOC" >&5 +$as_echo "$ac_ct_MOC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_MOC" = x; then + MOC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + MOC=$ac_ct_MOC + fi +else + MOC="$ac_cv_prog_MOC" +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking moc version" >&5 +$as_echo_n "checking moc version... " >&6; } + mocversion=`$MOC -v 2>&1` + mocversiongrep=`echo $mocversion | grep -E "Qt 5|moc 5"` + if test x"$mocversiongrep" != x"$mocversion"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + # moc was not the qt5 one, try with moc-qt5 + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}moc-qt5", so it can be a program name with args. +set dummy ${ac_tool_prefix}moc-qt5; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_MOC2+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$MOC2"; then + ac_cv_prog_MOC2="$MOC2" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_MOC2="${ac_tool_prefix}moc-qt5" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +MOC2=$ac_cv_prog_MOC2 +if test -n "$MOC2"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MOC2" >&5 +$as_echo "$MOC2" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_MOC2"; then + ac_ct_MOC2=$MOC2 + # Extract the first word of "moc-qt5", so it can be a program name with args. +set dummy moc-qt5; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_MOC2+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_MOC2"; then + ac_cv_prog_ac_ct_MOC2="$ac_ct_MOC2" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_MOC2="moc-qt5" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_MOC2=$ac_cv_prog_ac_ct_MOC2 +if test -n "$ac_ct_MOC2"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MOC2" >&5 +$as_echo "$ac_ct_MOC2" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_MOC2" = x; then + MOC2="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + MOC2=$ac_ct_MOC2 + fi +else + MOC2="$ac_cv_prog_MOC2" +fi + + mocversion=`$MOC2 -v 2>&1` + mocversiongrep=`echo $mocversion | grep -E "Qt 5|moc-qt5 5|moc 5"` + if test x"$mocversiongrep" != x"$mocversion"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}qtchooser", so it can be a program name with args. +set dummy ${ac_tool_prefix}qtchooser; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_QTCHOOSER+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$QTCHOOSER"; then + ac_cv_prog_QTCHOOSER="$QTCHOOSER" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_QTCHOOSER="${ac_tool_prefix}qtchooser" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +QTCHOOSER=$ac_cv_prog_QTCHOOSER +if test -n "$QTCHOOSER"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $QTCHOOSER" >&5 +$as_echo "$QTCHOOSER" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_QTCHOOSER"; then + ac_ct_QTCHOOSER=$QTCHOOSER + # Extract the first word of "qtchooser", so it can be a program name with args. +set dummy qtchooser; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_QTCHOOSER+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_QTCHOOSER"; then + ac_cv_prog_ac_ct_QTCHOOSER="$ac_ct_QTCHOOSER" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_QTCHOOSER="qtchooser" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_QTCHOOSER=$ac_cv_prog_ac_ct_QTCHOOSER +if test -n "$ac_ct_QTCHOOSER"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_QTCHOOSER" >&5 +$as_echo "$ac_ct_QTCHOOSER" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_QTCHOOSER" = x; then + QTCHOOSER="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + QTCHOOSER=$ac_ct_QTCHOOSER + fi +else + QTCHOOSER="$ac_cv_prog_QTCHOOSER" +fi + + qt5tooldir=`QT_SELECT=qt5 qtchooser -print-env | grep QTTOOLDIR | cut -d '=' -f 2 | cut -d \" -f 2` + mocversion=`$qt5tooldir/moc -v 2>&1` + mocversiongrep=`echo $mocversion | grep -E "Qt 5|moc 5"` + if test x"$mocversiongrep" != x"$mocversion"; then + # no valid moc found + have_qt5_libs="no"; + else + MOC=$qt5tooldir/moc + fi + else + MOC=$MOC2 + fi fi if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}moc", so it can be a program name with args. -set dummy ${ac_tool_prefix}moc; ac_word=$2 + # Extract the first word of "${ac_tool_prefix}rcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}rcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_MOC+:} false; then : +if ${ac_cv_prog_RCC+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$MOC"; then - ac_cv_prog_MOC="$MOC" # Let the user override the test. + if test -n "$RCC"; then + ac_cv_prog_RCC="$RCC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -9987,7 +10788,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_MOC="${ac_tool_prefix}moc" + ac_cv_prog_RCC="${ac_tool_prefix}rcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -9997,10 +10798,10 @@ IFS=$as_save_IFS fi fi -MOC=$ac_cv_prog_MOC -if test -n "$MOC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MOC" >&5 -$as_echo "$MOC" >&6; } +RCC=$ac_cv_prog_RCC +if test -n "$RCC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RCC" >&5 +$as_echo "$RCC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -10008,17 +10809,17 @@ fi fi -if test -z "$ac_cv_prog_MOC"; then - ac_ct_MOC=$MOC - # Extract the first word of "moc", so it can be a program name with args. -set dummy moc; ac_word=$2 +if test -z "$ac_cv_prog_RCC"; then + ac_ct_RCC=$RCC + # Extract the first word of "rcc", so it can be a program name with args. +set dummy rcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_MOC+:} false; then : +if ${ac_cv_prog_ac_ct_RCC+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$ac_ct_MOC"; then - ac_cv_prog_ac_ct_MOC="$ac_ct_MOC" # Let the user override the test. + if test -n "$ac_ct_RCC"; then + ac_cv_prog_ac_ct_RCC="$ac_ct_RCC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -10027,7 +10828,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_MOC="moc" + ac_cv_prog_ac_ct_RCC="rcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -10037,17 +10838,17 @@ IFS=$as_save_IFS fi fi -ac_ct_MOC=$ac_cv_prog_ac_ct_MOC -if test -n "$ac_ct_MOC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MOC" >&5 -$as_echo "$ac_ct_MOC" >&6; } +ac_ct_RCC=$ac_cv_prog_ac_ct_RCC +if test -n "$ac_ct_RCC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RCC" >&5 +$as_echo "$ac_ct_RCC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - if test "x$ac_ct_MOC" = x; then - MOC="" + if test "x$ac_ct_RCC" = x; then + RCC="" else case $cross_compiling:$ac_tool_warned in yes:) @@ -10055,30 +10856,30 @@ yes:) $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac - MOC=$ac_ct_MOC + RCC=$ac_ct_RCC fi else - MOC="$ac_cv_prog_MOC" + RCC="$ac_cv_prog_RCC" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking moc version" >&5 -$as_echo_n "checking moc version... " >&6; } - mocversion=`$MOC -v 2>&1` - mocversiongrep=`echo $mocversion | grep -E "Qt 5|moc 5"` - if test x"$mocversiongrep" != x"$mocversion"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking rcc version" >&5 +$as_echo_n "checking rcc version... " >&6; } + rccversion=`$RCC -v 2>&1` + rccversiongrep=`echo $rccversion | grep -E "Qt 5|rcc 5"` + if test x"$rccversiongrep" != x"$rccversion"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - # moc was not the qt5 one, try with moc-qt5 + # rcc was not the qt5 one, try with rcc-qt5 if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}moc-qt5", so it can be a program name with args. -set dummy ${ac_tool_prefix}moc-qt5; ac_word=$2 + # Extract the first word of "${ac_tool_prefix}rcc-qt5", so it can be a program name with args. +set dummy ${ac_tool_prefix}rcc-qt5; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_MOC2+:} false; then : +if ${ac_cv_prog_RCC2+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$MOC2"; then - ac_cv_prog_MOC2="$MOC2" # Let the user override the test. + if test -n "$RCC2"; then + ac_cv_prog_RCC2="$RCC2" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -10087,7 +10888,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_MOC2="${ac_tool_prefix}moc-qt5" + ac_cv_prog_RCC2="${ac_tool_prefix}rcc-qt5" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -10097,10 +10898,10 @@ IFS=$as_save_IFS fi fi -MOC2=$ac_cv_prog_MOC2 -if test -n "$MOC2"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MOC2" >&5 -$as_echo "$MOC2" >&6; } +RCC2=$ac_cv_prog_RCC2 +if test -n "$RCC2"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RCC2" >&5 +$as_echo "$RCC2" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -10108,17 +10909,17 @@ fi fi -if test -z "$ac_cv_prog_MOC2"; then - ac_ct_MOC2=$MOC2 - # Extract the first word of "moc-qt5", so it can be a program name with args. -set dummy moc-qt5; ac_word=$2 +if test -z "$ac_cv_prog_RCC2"; then + ac_ct_RCC2=$RCC2 + # Extract the first word of "rcc-qt5", so it can be a program name with args. +set dummy rcc-qt5; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_MOC2+:} false; then : +if ${ac_cv_prog_ac_ct_RCC2+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$ac_ct_MOC2"; then - ac_cv_prog_ac_ct_MOC2="$ac_ct_MOC2" # Let the user override the test. + if test -n "$ac_ct_RCC2"; then + ac_cv_prog_ac_ct_RCC2="$ac_ct_RCC2" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -10127,7 +10928,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_MOC2="moc-qt5" + ac_cv_prog_ac_ct_RCC2="rcc-qt5" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -10137,17 +10938,17 @@ IFS=$as_save_IFS fi fi -ac_ct_MOC2=$ac_cv_prog_ac_ct_MOC2 -if test -n "$ac_ct_MOC2"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MOC2" >&5 -$as_echo "$ac_ct_MOC2" >&6; } +ac_ct_RCC2=$ac_cv_prog_ac_ct_RCC2 +if test -n "$ac_ct_RCC2"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RCC2" >&5 +$as_echo "$ac_ct_RCC2" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - if test "x$ac_ct_MOC2" = x; then - MOC2="" + if test "x$ac_ct_RCC2" = x; then + RCC2="" else case $cross_compiling:$ac_tool_warned in yes:) @@ -10155,15 +10956,15 @@ yes:) $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac - MOC2=$ac_ct_MOC2 + RCC2=$ac_ct_RCC2 fi else - MOC2="$ac_cv_prog_MOC2" + RCC2="$ac_cv_prog_RCC2" fi - mocversion=`$MOC2 -v 2>&1` - mocversiongrep=`echo $mocversion | grep -E "Qt 5|moc-qt5 5|moc 5"` - if test x"$mocversiongrep" != x"$mocversion"; then + rccversion=`$RCC2 -v 2>&1` + rccversiongrep=`echo $rccversion | grep -E "Qt 5|rcc-qt5 5|rcc 5"` + if test x"$rccversiongrep" != x"$rccversion"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}qtchooser", so it can be a program name with args. set dummy ${ac_tool_prefix}qtchooser; ac_word=$2 @@ -10257,28 +11058,94 @@ else fi qt5tooldir=`QT_SELECT=qt5 qtchooser -print-env | grep QTTOOLDIR | cut -d '=' -f 2 | cut -d \" -f 2` - mocversion=`$qt5tooldir/moc -v 2>&1` - mocversiongrep=`echo $mocversion | grep -E "Qt 5|moc 5"` - if test x"$mocversiongrep" != x"$mocversion"; then - # no valid moc found + rccversion=`$qt5tooldir/rcc -v 2>&1` + rccversiongrep=`echo $rccversion | grep -E "Qt 5|rcc 5"` + if test x"$rccversiongrep" != x"$rccversion"; then + # no valid rcc found have_qt5_libs="no"; else - MOC=$qt5tooldir/moc + RCC=$qt5tooldir/rcc fi else - MOC=$MOC2 + RCC=$RCC2 fi fi + fi + if test "$have_qt5_libs" != "yes"; then + if test "$pinentry_qt" = "yes"; then + as_fn_error $? " + *** + *** Qt5 (Qt5Core, Qt5Gui, Qt5Widgets) is required. + ***" "$LINENO" 5 + else + pinentry_qt=no + fi + fi +fi + + + + + + +if test "$pinentry_qt" != "no"; then + pinentry_qt=yes +fi + if test "$pinentry_qt" = "yes"; then + BUILD_PINENTRY_QT_TRUE= + BUILD_PINENTRY_QT_FALSE='#' +else + BUILD_PINENTRY_QT_TRUE='#' + BUILD_PINENTRY_QT_FALSE= +fi + +if test "$pinentry_qt" = "yes"; then + +$as_echo "#define PINENTRY_QT 1" >>confdefs.h + +fi +if test "$have_qt5_x11extras" = "yes"; then + +$as_echo "#define PINENTRY_QT_X11 1" >>confdefs.h + +fi +if test "$have_kf5waylandclient" = "yes"; then + PINENTRY_QT_CFLAGS="$KF5WAYLANDCLIENT_CFLAGS $PINENTRY_QT_CFLAGS -fpic" + PINENTRY_QT_LIBS="$KF5WAYLANDCLIENT_LIBS $PINENTRY_QT_LIBS" + +$as_echo "#define PINENTRY_QT_WAYLAND 1" >>confdefs.h + +else + if test "$have_w32_system" != "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: pinentry-qt will be built without Caps Lock warning on Wayland" >&5 +$as_echo "$as_me: WARNING: pinentry-qt will be built without Caps Lock warning on Wayland" >&2;} + fi +fi + +# Check whether --enable-pinentry-qt4 was given. +if test "${enable_pinentry_qt4+set}" = set; then : + enableval=$enable_pinentry_qt4; pinentry_qt4=$enableval +else + pinentry_qt4=maybe +fi + + + +if test "$pinentry_qt4" != "no"; then + + have_qt4_libs="no"; + + if test "$enable_pinentry_qt4" != "no"; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for QtCore >= 4.6.0 QtGui >= 4.6.0" >&5 $as_echo_n "checking for QtCore >= 4.6.0 QtGui >= 4.6.0... " >&6; } if test -n "$PKG_CONFIG"; then - if test -n "$PINENTRY_QT_CFLAGS"; then - pkg_cv_PINENTRY_QT_CFLAGS="$PINENTRY_QT_CFLAGS" + if test -n "$PINENTRY_QT4_CFLAGS"; then + pkg_cv_PINENTRY_QT4_CFLAGS="$PINENTRY_QT4_CFLAGS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"QtCore >= 4.6.0 QtGui >= 4.6.0\""; } >&5 @@ -10286,7 +11153,7 @@ if test -n "$PKG_CONFIG"; then ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_PINENTRY_QT_CFLAGS=`$PKG_CONFIG --cflags "QtCore >= 4.6.0 QtGui >= 4.6.0" 2>/dev/null` + pkg_cv_PINENTRY_QT4_CFLAGS=`$PKG_CONFIG --cflags "QtCore >= 4.6.0 QtGui >= 4.6.0" 2>/dev/null` else pkg_failed=yes fi @@ -10295,8 +11162,8 @@ else pkg_failed=untried fi if test -n "$PKG_CONFIG"; then - if test -n "$PINENTRY_QT_LIBS"; then - pkg_cv_PINENTRY_QT_LIBS="$PINENTRY_QT_LIBS" + if test -n "$PINENTRY_QT4_LIBS"; then + pkg_cv_PINENTRY_QT4_LIBS="$PINENTRY_QT4_LIBS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"QtCore >= 4.6.0 QtGui >= 4.6.0\""; } >&5 @@ -10304,7 +11171,7 @@ if test -n "$PKG_CONFIG"; then ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_PINENTRY_QT_LIBS=`$PKG_CONFIG --libs "QtCore >= 4.6.0 QtGui >= 4.6.0" 2>/dev/null` + pkg_cv_PINENTRY_QT4_LIBS=`$PKG_CONFIG --libs "QtCore >= 4.6.0 QtGui >= 4.6.0" 2>/dev/null` else pkg_failed=yes fi @@ -10323,12 +11190,12 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - PINENTRY_QT_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "QtCore >= 4.6.0 QtGui >= 4.6.0"` + PINENTRY_QT4_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "QtCore >= 4.6.0 QtGui >= 4.6.0"` else - PINENTRY_QT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "QtCore >= 4.6.0 QtGui >= 4.6.0"` + PINENTRY_QT4_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "QtCore >= 4.6.0 QtGui >= 4.6.0"` fi # Put the nasty error message in config.log where it belongs - echo "$PINENTRY_QT_PKG_ERRORS" >&5 + echo "$PINENTRY_QT4_PKG_ERRORS" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -10336,23 +11203,24 @@ $as_echo "no" >&6; } elif test $pkg_failed = untried; then have_qt4_libs="no" else - PINENTRY_QT_CFLAGS=$pkg_cv_PINENTRY_QT_CFLAGS - PINENTRY_QT_LIBS=$pkg_cv_PINENTRY_QT_LIBS + PINENTRY_QT4_CFLAGS=$pkg_cv_PINENTRY_QT4_CFLAGS + PINENTRY_QT4_LIBS=$pkg_cv_PINENTRY_QT4_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } have_qt4_libs="yes" fi - if test "$have_qt4_libs" = "yes"; then - if test -n "$ac_tool_prefix"; then + fi + if test "$have_qt4_libs" = "yes"; then + if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}moc", so it can be a program name with args. set dummy ${ac_tool_prefix}moc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_MOC+:} false; then : +if ${ac_cv_prog_MOC4+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$MOC"; then - ac_cv_prog_MOC="$MOC" # Let the user override the test. + if test -n "$MOC4"; then + ac_cv_prog_MOC4="$MOC4" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -10361,7 +11229,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_MOC="${ac_tool_prefix}moc" + ac_cv_prog_MOC4="${ac_tool_prefix}moc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -10371,10 +11239,10 @@ IFS=$as_save_IFS fi fi -MOC=$ac_cv_prog_MOC -if test -n "$MOC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MOC" >&5 -$as_echo "$MOC" >&6; } +MOC4=$ac_cv_prog_MOC4 +if test -n "$MOC4"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MOC4" >&5 +$as_echo "$MOC4" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -10382,17 +11250,17 @@ fi fi -if test -z "$ac_cv_prog_MOC"; then - ac_ct_MOC=$MOC +if test -z "$ac_cv_prog_MOC4"; then + ac_ct_MOC4=$MOC4 # Extract the first word of "moc", so it can be a program name with args. set dummy moc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_MOC+:} false; then : +if ${ac_cv_prog_ac_ct_MOC4+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$ac_ct_MOC"; then - ac_cv_prog_ac_ct_MOC="$ac_ct_MOC" # Let the user override the test. + if test -n "$ac_ct_MOC4"; then + ac_cv_prog_ac_ct_MOC4="$ac_ct_MOC4" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -10401,7 +11269,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_MOC="moc" + ac_cv_prog_ac_ct_MOC4="moc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -10411,17 +11279,17 @@ IFS=$as_save_IFS fi fi -ac_ct_MOC=$ac_cv_prog_ac_ct_MOC -if test -n "$ac_ct_MOC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MOC" >&5 -$as_echo "$ac_ct_MOC" >&6; } +ac_ct_MOC4=$ac_cv_prog_ac_ct_MOC4 +if test -n "$ac_ct_MOC4"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MOC4" >&5 +$as_echo "$ac_ct_MOC4" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - if test "x$ac_ct_MOC" = x; then - MOC="" + if test "x$ac_ct_MOC4" = x; then + MOC4="" else case $cross_compiling:$ac_tool_warned in yes:) @@ -10429,30 +11297,30 @@ yes:) $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac - MOC=$ac_ct_MOC + MOC4=$ac_ct_MOC4 fi else - MOC="$ac_cv_prog_MOC" + MOC4="$ac_cv_prog_MOC4" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking moc version" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking moc version" >&5 $as_echo_n "checking moc version... " >&6; } - mocversion=`$MOC -v 2>&1` - mocversiongrep=`echo $mocversion | grep "Qt 4"` - if test x"$mocversiongrep" != x"$mocversion"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + mocversion=`$MOC4 -v 2>&1` + mocversiongrep=`echo $mocversion | grep "Qt 4"` + if test x"$mocversiongrep" != x"$mocversion"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - # moc was not the qt4 one, try with moc-qt4 - if test -n "$ac_tool_prefix"; then + # moc was not the qt4 one, try with moc-qt4 + if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}moc-qt4", so it can be a program name with args. set dummy ${ac_tool_prefix}moc-qt4; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_MOC2+:} false; then : +if ${ac_cv_prog_MOC42+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$MOC2"; then - ac_cv_prog_MOC2="$MOC2" # Let the user override the test. + if test -n "$MOC42"; then + ac_cv_prog_MOC42="$MOC42" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -10461,7 +11329,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_MOC2="${ac_tool_prefix}moc-qt4" + ac_cv_prog_MOC42="${ac_tool_prefix}moc-qt4" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -10471,10 +11339,10 @@ IFS=$as_save_IFS fi fi -MOC2=$ac_cv_prog_MOC2 -if test -n "$MOC2"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MOC2" >&5 -$as_echo "$MOC2" >&6; } +MOC42=$ac_cv_prog_MOC42 +if test -n "$MOC42"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MOC42" >&5 +$as_echo "$MOC42" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -10482,17 +11350,17 @@ fi fi -if test -z "$ac_cv_prog_MOC2"; then - ac_ct_MOC2=$MOC2 +if test -z "$ac_cv_prog_MOC42"; then + ac_ct_MOC42=$MOC42 # Extract the first word of "moc-qt4", so it can be a program name with args. set dummy moc-qt4; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_MOC2+:} false; then : +if ${ac_cv_prog_ac_ct_MOC42+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$ac_ct_MOC2"; then - ac_cv_prog_ac_ct_MOC2="$ac_ct_MOC2" # Let the user override the test. + if test -n "$ac_ct_MOC42"; then + ac_cv_prog_ac_ct_MOC42="$ac_ct_MOC42" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -10501,7 +11369,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_MOC2="moc-qt4" + ac_cv_prog_ac_ct_MOC42="moc-qt4" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -10511,17 +11379,17 @@ IFS=$as_save_IFS fi fi -ac_ct_MOC2=$ac_cv_prog_ac_ct_MOC2 -if test -n "$ac_ct_MOC2"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MOC2" >&5 -$as_echo "$ac_ct_MOC2" >&6; } +ac_ct_MOC42=$ac_cv_prog_ac_ct_MOC42 +if test -n "$ac_ct_MOC42"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MOC42" >&5 +$as_echo "$ac_ct_MOC42" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - if test "x$ac_ct_MOC2" = x; then - MOC2="" + if test "x$ac_ct_MOC42" = x; then + MOC42="" else case $cross_compiling:$ac_tool_warned in yes:) @@ -10529,33 +11397,32 @@ yes:) $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac - MOC2=$ac_ct_MOC2 + MOC42=$ac_ct_MOC42 fi else - MOC2="$ac_cv_prog_MOC2" + MOC42="$ac_cv_prog_MOC42" fi - mocversion=`$MOC2 -v 2>&1` - mocversiongrep=`echo $mocversion | grep "Qt 4"` - if test x"$mocversiongrep" != x"$mocversion"; then - # no valid moc found - have_qt4_libs="no"; - MOC="not found" - else - MOC=$MOC2 - fi + mocversion=`$MOC42 -v 2>&1` + mocversiongrep=`echo $mocversion | grep "Qt 4"` + if test x"$mocversiongrep" != x"$mocversion"; then + # no valid moc found + have_qt4_libs="no"; + MOC4="not found" + else + MOC4=$MOC42 fi fi fi - if test "$have_qt4_libs" != "yes" -a "$have_qt5_libs" != "yes"; then - if test "$pinentry_qt" = "yes"; then + if test "$have_qt4_libs" != "yes"; then + if test "$pinentry_qt4" = "yes"; then as_fn_error $? " *** - *** Qt4 (QtCore, QtGui) or Qt5 (Qt5Core, Qt5Gui, Qt5Widgets) is required. + *** Qt4 (QtCore, QtGui) is required. ***" "$LINENO" 5 else - pinentry_qt=no + pinentry_qt4=no fi fi fi @@ -10564,26 +11431,22 @@ fi -if test "$pinentry_qt" != "no"; then - pinentry_qt=yes + +if test "$pinentry_qt4" != "no"; then + pinentry_qt4=yes fi - if test "$pinentry_qt" = "yes"; then - BUILD_PINENTRY_QT_TRUE= - BUILD_PINENTRY_QT_FALSE='#' + if test "$pinentry_qt4" = "yes"; then + BUILD_PINENTRY_QT4_TRUE= + BUILD_PINENTRY_QT4_FALSE='#' else - BUILD_PINENTRY_QT_TRUE='#' - BUILD_PINENTRY_QT_FALSE= + BUILD_PINENTRY_QT4_TRUE='#' + BUILD_PINENTRY_QT4_FALSE= fi -if test "$pinentry_qt" = "yes"; then +if test "$pinentry_qt4" = "yes"; then -$as_echo "#define PINENTRY_QT 1" >>confdefs.h +$as_echo "#define PINENTRY_QT4 1" >>confdefs.h - if test "$have_qt4_libs" = "yes"; then - pinentry_qt_lib_version="(Qt4)" - else - pinentry_qt_lib_version="(Qt5)" - fi fi # Check whether --enable-pinentry-tqt was given. @@ -10600,7 +11463,8 @@ if test "$pinentry_tqt" != "no"; then as_fn_error $? " *** *** Building both Qt and TQt pinentries is not supported. - *** Use --disable-pinentry-qt if you want the TQt pinentry. + *** Use --disable-pinentry-qt and --disable-pinentry-qt4 + *** if you want the TQt pinentry. ***" "$LINENO" 5 fi @@ -11060,7 +11924,15 @@ else if test "$pinentry_tqt" = "yes"; then PINENTRY_DEFAULT=pinentry-tqt else - as_fn_error $? "No pinentry enabled." "$LINENO" 5 + if test "$pinentry_efl" = "yes"; then + PINENTRY_DEFAULT=pinentry-efl + else + if test "$pinentry_qt4" = "yes"; then + PINENTRY_DEFAULT=pinentry-qt4 + else + as_fn_error $? "No pinentry enabled." "$LINENO" 5 + fi + fi fi fi fi @@ -11134,8 +12006,25 @@ fi # +build_doc=yes +# Check whether --enable-doc was given. +if test "${enable_doc+set}" = set; then : + enableval=$enable_doc; build_doc=$enableval +else + build_doc=yes +fi + + if test "x$build_doc" != xno; then + BUILD_DOC_TRUE= + BUILD_DOC_FALSE='#' +else + BUILD_DOC_TRUE='#' + BUILD_DOC_FALSE= +fi + + -ac_config_files="$ac_config_files m4/Makefile secmem/Makefile pinentry/Makefile curses/Makefile tty/Makefile emacs/Makefile gtk+-2/Makefile gnome3/Makefile qt/Makefile tqt/Makefile w32/Makefile fltk/Makefile doc/Makefile Makefile" +ac_config_files="$ac_config_files m4/Makefile secmem/Makefile pinentry/Makefile curses/Makefile tty/Makefile efl/Makefile emacs/Makefile gtk+-2/Makefile gnome3/Makefile qt/Makefile qt/icons/Makefile qt4/Makefile tqt/Makefile w32/Makefile fltk/Makefile doc/Makefile Makefile" cat >confcache <<\_ACEOF @@ -11232,6 +12121,7 @@ DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= +U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' @@ -11330,6 +12220,10 @@ if test -z "${INSIDE_EMACS_TRUE}" && test -z "${INSIDE_EMACS_FALSE}"; then as_fn_error $? "conditional \"INSIDE_EMACS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${BUILD_PINENTRY_EFL_TRUE}" && test -z "${BUILD_PINENTRY_EFL_FALSE}"; then + as_fn_error $? "conditional \"BUILD_PINENTRY_EFL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${BUILD_PINENTRY_GTK_2_TRUE}" && test -z "${BUILD_PINENTRY_GTK_2_FALSE}"; then as_fn_error $? "conditional \"BUILD_PINENTRY_GTK_2\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -11346,6 +12240,10 @@ if test -z "${BUILD_PINENTRY_QT_TRUE}" && test -z "${BUILD_PINENTRY_QT_FALSE}"; as_fn_error $? "conditional \"BUILD_PINENTRY_QT\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${BUILD_PINENTRY_QT4_TRUE}" && test -z "${BUILD_PINENTRY_QT4_FALSE}"; then + as_fn_error $? "conditional \"BUILD_PINENTRY_QT4\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${BUILD_PINENTRY_TQT_TRUE}" && test -z "${BUILD_PINENTRY_TQT_FALSE}"; then as_fn_error $? "conditional \"BUILD_PINENTRY_TQT\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -11358,6 +12256,10 @@ if test -z "${BUILD_PINENTRY_FLTK_TRUE}" && test -z "${BUILD_PINENTRY_FLTK_FALSE as_fn_error $? "conditional \"BUILD_PINENTRY_FLTK\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${BUILD_DOC_TRUE}" && test -z "${BUILD_DOC_FALSE}"; then + as_fn_error $? "conditional \"BUILD_DOC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 @@ -11755,7 +12657,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by pinentry $as_me 1.1.0, which was +This file was extended by pinentry $as_me 1.2.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -11821,7 +12723,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -pinentry config.status 1.1.0 +pinentry config.status 1.2.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -11940,7 +12842,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # -AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" +AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}" _ACEOF @@ -11957,10 +12859,13 @@ do "pinentry/Makefile") CONFIG_FILES="$CONFIG_FILES pinentry/Makefile" ;; "curses/Makefile") CONFIG_FILES="$CONFIG_FILES curses/Makefile" ;; "tty/Makefile") CONFIG_FILES="$CONFIG_FILES tty/Makefile" ;; + "efl/Makefile") CONFIG_FILES="$CONFIG_FILES efl/Makefile" ;; "emacs/Makefile") CONFIG_FILES="$CONFIG_FILES emacs/Makefile" ;; "gtk+-2/Makefile") CONFIG_FILES="$CONFIG_FILES gtk+-2/Makefile" ;; "gnome3/Makefile") CONFIG_FILES="$CONFIG_FILES gnome3/Makefile" ;; "qt/Makefile") CONFIG_FILES="$CONFIG_FILES qt/Makefile" ;; + "qt/icons/Makefile") CONFIG_FILES="$CONFIG_FILES qt/icons/Makefile" ;; + "qt4/Makefile") CONFIG_FILES="$CONFIG_FILES qt4/Makefile" ;; "tqt/Makefile") CONFIG_FILES="$CONFIG_FILES tqt/Makefile" ;; "w32/Makefile") CONFIG_FILES="$CONFIG_FILES w32/Makefile" ;; "fltk/Makefile") CONFIG_FILES="$CONFIG_FILES fltk/Makefile" ;; @@ -12565,29 +13470,35 @@ $as_echo "$as_me: executing $ac_file commands" >&6;} # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac + # TODO: see whether this extra hack can be removed once we start + # requiring Autoconf 2.70 or later. + case $CONFIG_FILES in #( + *\'*) : + eval set x "$CONFIG_FILES" ;; #( + *) : + set x $CONFIG_FILES ;; #( + *) : + ;; +esac shift - for mf + # Used to flag and report bootstrapping failures. + am_rc=0 + for am_mf do # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line + am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile which includes + # dependency-tracking related rules and includes. + # Grep'ing the whole file directly is not great: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`$as_dirname -- "$mf" || -$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$mf" : 'X\(//\)[^/]' \| \ - X"$mf" : 'X\(//\)$' \| \ - X"$mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$mf" | + sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ + || continue + am_dirpart=`$as_dirname -- "$am_mf" || +$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$am_mf" : 'X\(//\)[^/]' \| \ + X"$am_mf" : 'X\(//\)$' \| \ + X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$am_mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -12605,53 +13516,50 @@ $as_echo X"$mf" | q } s/.*/./; q'` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`$as_dirname -- "$file" || -$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$file" : 'X\(//\)[^/]' \| \ - X"$file" : 'X\(//\)$' \| \ - X"$file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ + am_filepart=`$as_basename -- "$am_mf" || +$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \ + X"$am_mf" : 'X\(//\)$' \| \ + X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$am_mf" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } - /^X\(\/\/\)$/{ + /^X\/\(\/\/\)$/{ s//\1/ q } - /^X\(\/\).*/{ + /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` - as_dir=$dirpart/$fdir; as_fn_mkdir_p - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done + { echo "$as_me:$LINENO: cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles" >&5 + (cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } || am_rc=$? done + if test $am_rc -ne 0; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "Something went wrong bootstrapping makefile fragments + for automatic dependency tracking. If GNU make was not used, consider + re-running the configure script with MAKE=\"gmake\" (or whatever is + necessary). You can also try re-running configure with the + '--disable-dependency-tracking' option to at least be able to build + the package (albeit without support for automatic dependency tracking). +See \`config.log' for more details" "$LINENO" 5; } + fi + { am_dirpart=; unset am_dirpart;} + { am_filepart=; unset am_filepart;} + { am_mf=; unset am_mf;} + { am_rc=; unset am_rc;} + rm -f conftest-deps.mk } ;; @@ -12697,15 +13605,17 @@ fi Pinentry v${VERSION} has been configured as follows: - Revision: 02df3d2 (735) + Revision: 3389615 (13193) Platform: $host Curses Pinentry ..: $pinentry_curses TTY Pinentry .....: $pinentry_tty Emacs Pinentry ...: $pinentry_emacs + EFL Pinentry .....: $pinentry_efl GTK+-2 Pinentry ..: $pinentry_gtk_2 GNOME 3 Pinentry .: $pinentry_gnome_3 - Qt Pinentry ......: $pinentry_qt $pinentry_qt_lib_version + Qt5 Pinentry .....: $pinentry_qt + Qt4 Pinentry .....: $pinentry_qt4 TQt Pinentry .....: $pinentry_tqt W32 Pinentry .....: $pinentry_w32 FLTK Pinentry ....: $pinentry_fltk @@ -12721,15 +13631,17 @@ $as_echo "$as_me: Pinentry v${VERSION} has been configured as follows: - Revision: 02df3d2 (735) + Revision: 3389615 (13193) Platform: $host Curses Pinentry ..: $pinentry_curses TTY Pinentry .....: $pinentry_tty Emacs Pinentry ...: $pinentry_emacs + EFL Pinentry .....: $pinentry_efl GTK+-2 Pinentry ..: $pinentry_gtk_2 GNOME 3 Pinentry .: $pinentry_gnome_3 - Qt Pinentry ......: $pinentry_qt $pinentry_qt_lib_version + Qt5 Pinentry .....: $pinentry_qt + Qt4 Pinentry .....: $pinentry_qt4 TQt Pinentry .....: $pinentry_tqt W32 Pinentry .....: $pinentry_w32 FLTK Pinentry ....: $pinentry_fltk diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/configure.ac b/debian/pinentry-tqt/pinentry-tqt-1.2.1/configure.ac similarity index 76% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/configure.ac rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/configure.ac index c1b66d60..cb4e43fa 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/configure.ac +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/configure.ac @@ -19,37 +19,38 @@ # SPDX-License-Identifier: GPL-2.0+ # (Process this file with autoconf to produce a configure script.) -AC_PREREQ(2.69) +AC_PREREQ([2.69]) min_automake_version="1.14" # To build a release you need to create a tag with the version number # (git tag -s pinentry-n.m.k) and run "./autogen.sh --force". Please -# bump the version number immediately after the release, do another -# commit, and a push so that the git magic is able to work. -m4_define(mym4_version, [1.1.0]) +# bump the version number immediately after the release and do another +# commit and push so that the git magic is able to work. +m4_define([mym4_package],[pinentry]) +m4_define([mym4_major], [1]) +m4_define([mym4_minor], [2]) +m4_define([mym4_micro], [1]) # Below is m4 magic to extract and compute the git revision number, # the decimalized short revision number, a beta version string and a -# flag indicating a development version (mym4_isgit). Note that the +# flag indicating a development version (mym4_isbeta). Note that the # m4 processing is done by autoconf and not during the configure run. -m4_define([mym4_revision], m4_esyscmd([git branch -v 2>/dev/null \ - | awk '/^\* / {printf "%s",$3}'])) -m4_define([mym4_revision_dec], - m4_esyscmd_s([echo $((0x$(echo ]mym4_revision[|head -c 4)))])) -m4_define([mym4_betastring], - m4_esyscmd_s([git describe --match 'pinentry-[0-9].[0-9].*[0-9]' \ - --long| awk -F- '$3!=0{print"-beta"$3}'])) -m4_define([mym4_isgit],m4_if(mym4_betastring,[],[no],[yes])) -m4_define([mym4_full_version],[mym4_version[]mym4_betastring]) - -AC_INIT([pinentry],[mym4_full_version], [https://bugs.gnupg.org]) +m4_define([mym4_verslist], m4_split(m4_esyscmd([./autogen.sh --find-version] \ + mym4_package mym4_major mym4_minor mym4_micro),[:])) +m4_define([mym4_isbeta], m4_argn(2, mym4_verslist)) +m4_define([mym4_version], m4_argn(4, mym4_verslist)) +m4_define([mym4_revision], m4_argn(7, mym4_verslist)) +m4_define([mym4_revision_dec], m4_argn(8, mym4_verslist)) +m4_esyscmd([echo ]mym4_version[>VERSION]) + +AC_INIT([mym4_package],[mym4_version],[https://bugs.gnupg.org]) AC_CONFIG_AUX_DIR([build-aux]) -AM_CONFIG_HEADER(config.h) +AC_CONFIG_HEADERS([config.h]) AC_CONFIG_SRCDIR(pinentry/pinentry.h) AM_INIT_AUTOMAKE([serial-tests dist-bzip2 no-dist-gzip]) -AC_GNU_SOURCE +AC_USE_SYSTEM_EXTENSIONS AM_MAINTAINER_MODE @@ -217,11 +218,10 @@ fi # Checks for header files. -AC_HEADER_STDC AC_CHECK_HEADERS(string.h unistd.h langinfo.h termio.h locale.h utime.h wchar.h) dnl Checks for library functions. -AC_CHECK_FUNCS(seteuid stpcpy mmap) +AC_CHECK_FUNCS(seteuid stpcpy mmap stat) GNUPG_CHECK_MLOCK dnl Checks for standard types. @@ -272,30 +272,16 @@ COMMON_LIBS="$LIBASSUAN_LIBS $COMMON_LIBS" dnl Checks for libsecmem. -GNUPG_CHECK_TYPEDEF(byte, HAVE_BYTE_TYPEDEF) -GNUPG_CHECK_TYPEDEF(ulong, HAVE_ULONG_TYPEDEF) - -dnl Check for libcap -AC_ARG_WITH([libcap], AC_HELP_STRING([--without-libcap], - [Disable support for capabilities library])) - -if test "x$with_libcap" != "xno"; then - AC_PATH_PROG(SETCAP, setcap, :, "$PATH:/sbin:/usr/sbin") - AC_CHECK_LIB(cap, cap_set_proc, [ - AC_DEFINE(USE_CAPABILITIES,1,[The capabilities support library is installed]) - LIBCAP=-lcap - ]) -fi -AC_SUBST(LIBCAP) +AC_CHECK_TYPES([byte, ulong, u64]) dnl dnl Check for curses pinentry program. dnl AC_ARG_ENABLE(pinentry-curses, - AC_HELP_STRING([--enable-pinentry-curses], [build curses pinentry]), + AS_HELP_STRING([--enable-pinentry-curses],[build curses pinentry]), pinentry_curses=$enableval, pinentry_curses=maybe) AC_ARG_ENABLE(fallback-curses, - AC_HELP_STRING([--enable-fallback-curses], [include curses fallback]), + AS_HELP_STRING([--enable-fallback-curses],[include curses fallback]), fallback_curses=$enableval, fallback_curses=maybe) dnl @@ -340,7 +326,7 @@ dnl dnl Check for tty pinentry program. dnl AC_ARG_ENABLE(pinentry-tty, - AC_HELP_STRING([--enable-pinentry-tty], [build tty pinentry]), + AS_HELP_STRING([--enable-pinentry-tty],[build tty pinentry]), pinentry_tty=$enableval, pinentry_tty=maybe) AM_CONDITIONAL(BUILD_PINENTRY_TTY, test "$pinentry_tty" = "yes") @@ -369,21 +355,18 @@ dnl dnl Check for emacs pinentry program. dnl AC_ARG_ENABLE(pinentry-emacs, - AC_HELP_STRING([--enable-pinentry-emacs], [build emacs pinentry]), + AS_HELP_STRING([--enable-pinentry-emacs],[build emacs pinentry]), pinentry_emacs=$enableval, pinentry_emacs=no) AC_ARG_ENABLE(inside-emacs, - AC_HELP_STRING([--enable-inside-emacs], [include emacs hack]), + AS_HELP_STRING([--enable-inside-emacs],[include emacs hack]), inside_emacs=$enableval, inside_emacs=maybe) if test "$pinentry_emacs" != "no" -o "$inside_emacs" != "no"; then AC_MSG_CHECKING([if Unix domain socket is supported]) - AC_TRY_COMPILE([ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include #include -], - [int s = socket (AF_UNIX, SOCK_STREAM, 0);], - [_unixsock_works=yes], - [_unixsock_works=no]) +]], [[int s = socket (AF_UNIX, SOCK_STREAM, 0);]])],[_unixsock_works=yes],[_unixsock_works=no]) AC_MSG_RESULT($_unixsock_works) if test "$_unixsock_works" = "yes"; then if test "$pinentry_emacs" != "no"; then @@ -418,22 +401,51 @@ fi +dnl +dnl Check for EFL pinentry programs. +dnl +AC_ARG_ENABLE(pinentry-efl, + AS_HELP_STRING([--enable-pinentry-efl],[build EFL pinentry]), + pinentry_efl=$enableval, pinentry_efl=maybe) + +if test "$pinentry_efl" != "no"; then + PKG_CHECK_MODULES( + EFL, + [elementary >= 1.18,ecore-x], + [ + pinentry_efl=yes + ], + [ + if test "$pinentry_efl" = "yes"; then + AC_MSG_ERROR([[ +*** +*** efl (elementary >= 1.18, ecore-x) is required for pinentry-efl. +***]]) + else + AC_MSG_WARN([pkg-config could not find the modules elementary or ecore-x]) + fi + pinentry_efl=no + ] + ) +fi +AM_CONDITIONAL(BUILD_PINENTRY_EFL, test "$pinentry_efl" = "yes") + dnl dnl Check for GTK+-2 / GNOME3 pinentry programs. dnl AC_ARG_ENABLE(pinentry-gtk2, - AC_HELP_STRING([--enable-pinentry-gtk2], [build GTK+-2 pinentry]), + AS_HELP_STRING([--enable-pinentry-gtk2],[build GTK+-2 pinentry]), pinentry_gtk_2=$enableval, pinentry_gtk_2=maybe) AC_ARG_ENABLE(pinentry-gnome3, - AC_HELP_STRING([--enable-pinentry-gnome3], [build GNOME 3 pinentry]), + AS_HELP_STRING([--enable-pinentry-gnome3],[build GNOME 3 pinentry]), pinentry_gnome_3=$enableval, pinentry_gnome_3=maybe) dnl check if the module gtk+-2.0 exists if test "$pinentry_gtk_2" != "no"; then PKG_CHECK_MODULES( GTK2, - [gtk+-2.0 >= 2.4.0], + [gtk+-2.0 >= 2.12.0], [ test "$pinentry_gtk_2" != "no" && pinentry_gtk_2=yes test "$pinentry_gnome_3" != "no" && pinentry_gnome_3=yes @@ -467,8 +479,8 @@ dnl dnl Check for libsecret. dnl AC_ARG_ENABLE(libsecret, - AC_HELP_STRING([--enable-libsecret], - [optionally cache passphrases using libsecret]), + AS_HELP_STRING([--enable-libsecret], + [optionally cache passphrases using libsecret]), libsecret=$enableval, libsecret=maybe) dnl check if the module libsecret exists @@ -493,24 +505,61 @@ if test "$libsecret" = "yes"; then fi dnl -dnl Check for Qt pinentry program. +dnl Check for libX11 library +dnl +have_x11=no +if test "$have_w32_system" != "yes"; then + PKG_CHECK_MODULES( + LIBX11, + [x11], + [have_x11=yes], + [ + AC_MSG_WARN([pkg-config could not find the module x11]) + have_x11=no + ] + ) + + if test "$have_x11" = "yes"; then + AC_DEFINE(HAVE_X11, 1, + [The pinentries can optionally use x11.]) + fi +fi + +dnl +dnl Check for KF5WaylandClient library +dnl +have_kf5waylandclient=no +if test "$have_w32_system" != "yes"; then + PKG_CHECK_MODULES( + KF5WAYLANDCLIENT, + [KF5WaylandClient >= 5.60], + [have_kf5waylandclient=yes], + [ + AC_MSG_WARN([pkg-config could not find the module KF5WaylandClient]) + have_kf5waylandclient=no + ] + ) +fi + +dnl +dnl Check for Qt5 pinentry program. dnl AC_ARG_ENABLE(pinentry-qt, - AC_HELP_STRING([--enable-pinentry-qt], [build qt pinentry]), + AS_HELP_STRING([--enable-pinentry-qt],[build Qt5 pinentry]), pinentry_qt=$enableval, pinentry_qt=maybe) dnl dnl Checks for qt libraries. Deal correctly with $pinentry_qt = maybe. -dnl Tries to find Qt5, falls back on Qt4 +dnl Tries to find Qt5 dnl if test "$pinentry_qt" != "no"; then FIND_QT - if test "$have_qt4_libs" != "yes" -a "$have_qt5_libs" != "yes"; then + if test "$have_qt5_libs" != "yes"; then if test "$pinentry_qt" = "yes"; then AC_MSG_ERROR([[ *** - *** Qt4 (QtCore, QtGui) or Qt5 (Qt5Core, Qt5Gui, Qt5Widgets) is required. + *** Qt5 (Qt5Core, Qt5Gui, Qt5Widgets) is required. ***]]) else pinentry_qt=no @@ -520,6 +569,7 @@ fi AC_SUBST(PINENTRY_QT_CFLAGS) AC_SUBST(PINENTRY_QT_LIBS) +AC_SUBST(PINENTRY_QT_LDFLAGS) AC_SUBST(MOC) dnl If we have come so far, qt pinentry can be build. @@ -529,18 +579,65 @@ fi AM_CONDITIONAL(BUILD_PINENTRY_QT, test "$pinentry_qt" = "yes") if test "$pinentry_qt" = "yes"; then AC_DEFINE(PINENTRY_QT, 1, [The qt version of Pinentry is to be build]) - if test "$have_qt4_libs" = "yes"; then - pinentry_qt_lib_version="(Qt4)" - else - pinentry_qt_lib_version="(Qt5)" +fi +if test "$have_qt5_x11extras" = "yes"; then + AC_DEFINE(PINENTRY_QT_X11, 1, [pinentry-qt should use x11.]) +fi +if test "$have_kf5waylandclient" = "yes"; then + PINENTRY_QT_CFLAGS="$KF5WAYLANDCLIENT_CFLAGS $PINENTRY_QT_CFLAGS -fpic" + PINENTRY_QT_LIBS="$KF5WAYLANDCLIENT_LIBS $PINENTRY_QT_LIBS" + AC_DEFINE(PINENTRY_QT_WAYLAND, 1, [pinentry-qt should use KF5WaylandClient.]) +else + if test "$have_w32_system" != "yes"; then + AC_MSG_WARN([pinentry-qt will be built without Caps Lock warning on Wayland]) + fi +fi + +dnl +dnl Check for Qt4 pinentry program. +dnl +AC_ARG_ENABLE(pinentry-qt4, + AS_HELP_STRING([--enable-pinentry-qt4],[build Qt4 pinentry]), + pinentry_qt4=$enableval, pinentry_qt4=maybe) + + +dnl +dnl Checks for Qt4 libraries. Deal correctly with $pinentry_qt4 = maybe. +dnl Tries to find Qt4 +dnl +if test "$pinentry_qt4" != "no"; then + FIND_QT4 + if test "$have_qt4_libs" != "yes"; then + if test "$pinentry_qt4" = "yes"; then + AC_MSG_ERROR([[ + *** + *** Qt4 (QtCore, QtGui) is required. + ***]]) + else + pinentry_qt4=no + fi fi fi +AC_SUBST(PINENTRY_QT4_CFLAGS) +AC_SUBST(PINENTRY_QT4_LIBS) +AC_SUBST(PINENTRY_QT4_LDFLAGS) +AC_SUBST(MOC4) + +dnl If we have come so far, qt4 pinentry can be build. +if test "$pinentry_qt4" != "no"; then + pinentry_qt4=yes +fi +AM_CONDITIONAL(BUILD_PINENTRY_QT4, test "$pinentry_qt4" = "yes") +if test "$pinentry_qt4" = "yes"; then + AC_DEFINE(PINENTRY_QT4, 1, [The qt4 version of Pinentry is to be build]) +fi + dnl dnl Check for TQt pinentry program. dnl AC_ARG_ENABLE(pinentry-tqt, - AC_HELP_STRING([--enable-pinentry-tqt], [build tqt pinentry]), + AS_HELP_STRING([--enable-pinentry-tqt],[build tqt pinentry]), pinentry_tqt=$enableval, pinentry_tqt=no) if test "$pinentry_tqt" != "no"; then @@ -549,7 +646,8 @@ if test "$pinentry_tqt" != "no"; then AC_MSG_ERROR([[ *** *** Building both Qt and TQt pinentries is not supported. - *** Use --disable-pinentry-qt if you want the TQt pinentry. + *** Use --disable-pinentry-qt and --disable-pinentry-qt4 + *** if you want the TQt pinentry. ***]]) fi @@ -584,7 +682,7 @@ dnl dnl Check for FLTK pinentry program. dnl AC_ARG_ENABLE(pinentry-fltk, - AC_HELP_STRING([--enable-pinentry-fltk], [build FLTK 1.3 pinentry]), + AS_HELP_STRING([--enable-pinentry-fltk],[build FLTK 1.3 pinentry]), pinentry_fltk=$enableval, pinentry_fltk=maybe) dnl check for fltk-config @@ -645,7 +743,15 @@ else if test "$pinentry_tqt" = "yes"; then PINENTRY_DEFAULT=pinentry-tqt else - AC_MSG_ERROR([[No pinentry enabled.]]) + if test "$pinentry_efl" = "yes"; then + PINENTRY_DEFAULT=pinentry-efl + else + if test "$pinentry_qt4" = "yes"; then + PINENTRY_DEFAULT=pinentry-qt4 + else + AC_MSG_ERROR([[No pinentry enabled.]]) + fi + fi fi fi fi @@ -714,6 +820,12 @@ AH_BOTTOM([ #endif /*GNUPG_CONFIG_H_INCLUDED*/ ]) +build_doc=yes +AC_ARG_ENABLE([doc], AS_HELP_STRING([--disable-doc], + [do not build the documentation]), + build_doc=$enableval, build_doc=yes) +AM_CONDITIONAL([BUILD_DOC], [test "x$build_doc" != xno]) + AC_CONFIG_FILES([ m4/Makefile @@ -721,10 +833,13 @@ secmem/Makefile pinentry/Makefile curses/Makefile tty/Makefile +efl/Makefile emacs/Makefile gtk+-2/Makefile gnome3/Makefile qt/Makefile +qt/icons/Makefile +qt4/Makefile tqt/Makefile w32/Makefile fltk/Makefile @@ -744,9 +859,11 @@ AC_MSG_NOTICE([ Curses Pinentry ..: $pinentry_curses TTY Pinentry .....: $pinentry_tty Emacs Pinentry ...: $pinentry_emacs + EFL Pinentry .....: $pinentry_efl GTK+-2 Pinentry ..: $pinentry_gtk_2 GNOME 3 Pinentry .: $pinentry_gnome_3 - Qt Pinentry ......: $pinentry_qt $pinentry_qt_lib_version + Qt5 Pinentry .....: $pinentry_qt + Qt4 Pinentry .....: $pinentry_qt4 TQt Pinentry .....: $pinentry_tqt W32 Pinentry .....: $pinentry_w32 FLTK Pinentry ....: $pinentry_fltk diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/curses/Makefile.am b/debian/pinentry-tqt/pinentry-tqt-1.2.1/curses/Makefile.am similarity index 93% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/curses/Makefile.am rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/curses/Makefile.am index 915f8a8c..3bbdec8f 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/curses/Makefile.am +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/curses/Makefile.am @@ -23,6 +23,6 @@ bin_PROGRAMS = pinentry-curses AM_CPPFLAGS = $(COMMON_CFLAGS) $(NCURSES_INCLUDE) -I$(top_srcdir)/pinentry LDADD = ../pinentry/libpinentry.a ../pinentry/libpinentry-curses.a \ - ../secmem/libsecmem.a $(COMMON_LIBS) $(LIBCAP) $(LIBCURSES) $(LIBICONV) + ../secmem/libsecmem.a $(COMMON_LIBS) $(LIBCURSES) $(LIBICONV) pinentry_curses_SOURCES = pinentry-curses.c diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/curses/Makefile.in b/debian/pinentry-tqt/pinentry-tqt-1.2.1/curses/Makefile.in similarity index 91% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/curses/Makefile.in rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/curses/Makefile.in index 1a5274db..122d7453 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/curses/Makefile.in +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/curses/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -34,7 +34,17 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -99,16 +109,15 @@ build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = pinentry-curses$(EXEEXT) subdir = curses -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/build-aux/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/curses.m4 \ $(top_srcdir)/m4/gpg-error.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/libassuan.m4 $(top_srcdir)/m4/pkg.m4 \ - $(top_srcdir)/m4/qt.m4 $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/qt4.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -122,7 +131,7 @@ am__DEPENDENCIES_1 = pinentry_curses_DEPENDENCIES = ../pinentry/libpinentry.a \ ../pinentry/libpinentry-curses.a ../secmem/libsecmem.a \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -137,7 +146,8 @@ am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__depfiles_maybe = depfiles +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/pinentry-curses.Po am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -177,6 +187,8 @@ am__define_uniq_tagged_files = \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -201,6 +213,8 @@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ +EFL_CFLAGS = @EFL_CFLAGS@ +EFL_LIBS = @EFL_LIBS@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FLTKCFLAGS = @FLTKCFLAGS@ @@ -210,6 +224,7 @@ FLTK_CONFIG = @FLTK_CONFIG@ GITLOG_TO_CHANGELOG = @GITLOG_TO_CHANGELOG@ GNOME3_CFLAGS = @GNOME3_CFLAGS@ GNOME3_LIBS = @GNOME3_LIBS@ +GPGRT_CONFIG = @GPGRT_CONFIG@ GPG_ERROR_CFLAGS = @GPG_ERROR_CFLAGS@ GPG_ERROR_CONFIG = @GPG_ERROR_CONFIG@ GPG_ERROR_LIBS = @GPG_ERROR_LIBS@ @@ -223,11 +238,12 @@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KF5WAYLANDCLIENT_CFLAGS = @KF5WAYLANDCLIENT_CFLAGS@ +KF5WAYLANDCLIENT_LIBS = @KF5WAYLANDCLIENT_LIBS@ LDFLAGS = @LDFLAGS@ LIBASSUAN_CFLAGS = @LIBASSUAN_CFLAGS@ LIBASSUAN_CONFIG = @LIBASSUAN_CONFIG@ LIBASSUAN_LIBS = @LIBASSUAN_LIBS@ -LIBCAP = @LIBCAP@ LIBCURSES = @LIBCURSES@ LIBICONV = @LIBICONV@ LIBNCURSES = @LIBNCURSES@ @@ -236,6 +252,8 @@ LIBS = @LIBS@ LIBSECRET_CFLAGS = @LIBSECRET_CFLAGS@ LIBSECRET_LIBS = @LIBSECRET_LIBS@ LIBTERMCAP = @LIBTERMCAP@ +LIBX11_CFLAGS = @LIBX11_CFLAGS@ +LIBX11_LIBS = @LIBX11_LIBS@ LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ @@ -244,6 +262,8 @@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ MOC2 = @MOC2@ +MOC4 = @MOC4@ +MOC42 = @MOC42@ NCURSES_CFLAGS = @NCURSES_CFLAGS@ NCURSES_INCLUDE = @NCURSES_INCLUDE@ NCURSES_LIBS = @NCURSES_LIBS@ @@ -257,16 +277,23 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PINENTRY_DEFAULT = @PINENTRY_DEFAULT@ +PINENTRY_QT4_CFLAGS = @PINENTRY_QT4_CFLAGS@ +PINENTRY_QT4_LDFLAGS = @PINENTRY_QT4_LDFLAGS@ +PINENTRY_QT4_LIBS = @PINENTRY_QT4_LIBS@ PINENTRY_QT_CFLAGS = @PINENTRY_QT_CFLAGS@ +PINENTRY_QT_LDFLAGS = @PINENTRY_QT_LDFLAGS@ PINENTRY_QT_LIBS = @PINENTRY_QT_LIBS@ PINENTRY_QT_REQUIRE_CPP11_CFLAGS = @PINENTRY_QT_REQUIRE_CPP11_CFLAGS@ PINENTRY_QT_REQUIRE_CPP11_LIBS = @PINENTRY_QT_REQUIRE_CPP11_LIBS@ +PINENTRY_QT_X11_EXTRAS_CFLAGS = @PINENTRY_QT_X11_EXTRAS_CFLAGS@ +PINENTRY_QT_X11_EXTRAS_LIBS = @PINENTRY_QT_X11_EXTRAS_LIBS@ PINENTRY_TQT_CFLAGS = @PINENTRY_TQT_CFLAGS@ PINENTRY_TQT_LIBS = @PINENTRY_TQT_LIBS@ PKG_CONFIG = @PKG_CONFIG@ QTCHOOSER = @QTCHOOSER@ RANLIB = @RANLIB@ -SETCAP = @SETCAP@ +RCC = @RCC@ +RCC2 = @RCC2@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ @@ -316,6 +343,7 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -326,7 +354,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CPPFLAGS = $(COMMON_CFLAGS) $(NCURSES_INCLUDE) -I$(top_srcdir)/pinentry LDADD = ../pinentry/libpinentry.a ../pinentry/libpinentry-curses.a \ - ../secmem/libsecmem.a $(COMMON_LIBS) $(LIBCAP) $(LIBCURSES) $(LIBICONV) + ../secmem/libsecmem.a $(COMMON_LIBS) $(LIBCURSES) $(LIBICONV) pinentry_curses_SOURCES = pinentry-curses.c all: all-am @@ -345,14 +373,13 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu curses/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu curses/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -416,7 +443,13 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pinentry-curses.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pinentry-curses.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -484,7 +517,10 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -556,7 +592,7 @@ clean: clean-am clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/pinentry-curses.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -602,7 +638,7 @@ install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/pinentry-curses.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -622,7 +658,7 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ distclean distclean-compile distclean-generic distclean-tags \ distdir dvi dvi-am html html-am info info-am install \ @@ -636,6 +672,8 @@ uninstall-am: uninstall-binPROGRAMS ps ps-am tags tags-am uninstall uninstall-am \ uninstall-binPROGRAMS +.PRECIOUS: Makefile + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/curses/pinentry-curses.c b/debian/pinentry-tqt/pinentry-tqt-1.2.1/curses/pinentry-curses.c similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/curses/pinentry-curses.c rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/curses/pinentry-curses.c diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/README.Debian b/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/README.Debian similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/README.Debian rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/README.Debian diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/changelog b/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/changelog similarity index 89% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/changelog rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/changelog index 1e5ab1a1..3b3891fd 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/changelog +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/changelog @@ -1,8 +1,54 @@ -pinentry-tqt (1.1.0-4~0debian11.0.0+0) unstable; urgency=medium +pinentry-tqt (1.2.1-1~0) unstable; urgency=medium * Build pinentry only as pinentry-tqt for use with TDE. - -- Slávek Banko Sun, 08 Nov 2020 16:37:59 +0100 + -- Slávek Banko Thu, 27 Oct 2022 14:17:15 +0200 + +pinentry (1.2.1-1) unstable; urgency=medium + + * new upstream release + * ensure that qt4 remains disabled + * remove patches/0003-qt-fix-floating-dialog-under-sway.patch + * pinentry-gtk2: drop stale NEWS entry (see #1021502) + + -- Daniel Kahn Gillmor Tue, 18 Oct 2022 10:52:33 -0400 + +pinentry (1.2.0-2) unstable; urgency=medium + + * Fix --lc-ctype in manpages (Closes: #979412) + * wrap-and-sort -ast + * qt: fix floating dialog under sway (Closes: #1013318) + * Standards-Version: bump to 4.6.1 (no changes needed). + + -- Daniel Kahn Gillmor Fri, 24 Jun 2022 22:38:56 -0400 + +pinentry (1.2.0-1) unstable; urgency=medium + + * New upstream release to unstable + * d/gbp.conf: use DEP-14 branch naming (return to unstable) + * standards version: bump to 4.6.0 (no changes needed) + * ensure qt5 works on wayland + * refresh version info patch + * Drop fix for rpath, fixed upstream + * drop tweaks for EFL configuration check + + -- Daniel Kahn Gillmor Thu, 28 Apr 2022 08:33:01 -0400 + +pinentry (1.1.1-1) experimental; urgency=medium + + * new upstream release 1.1.1 + * dh 13 already does --fail-missing by default + * drop --as-needed linking flag, bullseye does this by default + * move to debian/sid branch for packaging + * update upstream signing keys + * drop patches already upstream + * standards-version: bump to 4.5.1 (no changes needed) + * refresh patches + * avoid rpath for pinentry-qt + * clean up use of pkg-config for EFL pinentry + * avoid trying to build pinentry-efl + + -- Daniel Kahn Gillmor Wed, 17 Feb 2021 15:43:06 -0500 pinentry (1.1.0-4) unstable; urgency=medium diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/clean b/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/clean similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/clean rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/clean diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/compat b/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/compat similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/compat rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/compat diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/control b/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/control similarity index 98% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/control rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/control index 3ab6941e..24220bcd 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/control +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/control @@ -15,7 +15,7 @@ Build-Depends: pkg-config, libtqt3-mt-dev, tqt3-apps-dev, texinfo, -Standards-Version: 4.5.0 +Standards-Version: 4.6.1 Homepage: https://www.gnupg.org/related_software/pinentry/ Vcs-Git: https://salsa.debian.org/debian/pinentry.git Vcs-Browser: https://salsa.debian.org/debian/pinentry diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/copyright b/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/copyright similarity index 98% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/copyright rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/copyright index a00f024f..3711cad2 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/copyright +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/copyright @@ -4,7 +4,7 @@ Upstream-Contact: gnupg-devel@gnupg.org Source: https://gnupg.org/ftp/gcrypt/pinentry/ Files: * -Copyright: 2002-2015, g10 Code GmbH +Copyright: 2002-2021, g10 Code GmbH License: GPL-2+ Files: fltk/* @@ -93,7 +93,7 @@ Copyright: 2002 Klarälvdalens Datakonsult AB (KDAB) License: GPL-2+ Files: debian/* -Copyright: 2004-2015 Peter Eisentraut +Copyright: 2004-2022 Peter Eisentraut Marcus Brinkmann Michael Brame Daniel Kahn Gillmor diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/gbp.conf b/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/gbp.conf similarity index 91% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/gbp.conf rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/gbp.conf index 13680f4c..0c87d574 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/gbp.conf +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/gbp.conf @@ -1,7 +1,7 @@ [DEFAULT] pristine-tar = True upstream-vcs-tag = pinentry-%(version)s -debian-branch = debian/master +debian-branch = debian/unstable [import-orig] filter = [ diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/not-installed b/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/not-installed similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/not-installed rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/not-installed diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/patches/0001-avoid-self-describing-as-a-beta.patch b/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/patches/0001-avoid-self-describing-as-a-beta.patch new file mode 100644 index 00000000..ac9b9137 --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/patches/0001-avoid-self-describing-as-a-beta.patch @@ -0,0 +1,51 @@ +From: Daniel Kahn Gillmor +Date: Wed, 13 May 2015 16:09:21 -0400 +Subject: avoid self-describing as a beta + +Using autoreconf against the source as distributed in tarball form +invariably results in a package that thinks it's a "beta" package, +which produces the "THIS IS A DEVELOPMENT VERSION" warning string. + +since we use dh_autoreconf, i need this patch to avoid producing +builds that announce themselves as DEVELOPMENT VERSIONs. + +See discussion at: + + http://lists.gnupg.org/pipermail/gnupg-devel/2014-November/029065.html +--- + autogen.sh | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/autogen.sh b/autogen.sh +index 9b36158..f381d48 100755 +--- a/autogen.sh ++++ b/autogen.sh +@@ -249,7 +249,7 @@ if [ "$myhost" = "find-version" ]; then + fi + + beta=no +- if [ -e .git ]; then ++ if false; then + ingit=yes + tmp=$(git describe --match "${matchstr1}" --long 2>/dev/null) + tmp=$(echo "$tmp" | sed s/^"$package"//) +@@ -265,8 +265,8 @@ if [ "$myhost" = "find-version" ]; then + rvd=$((0x$(echo ${rev} | dd bs=1 count=4 2>/dev/null))) + else + ingit=no +- beta=yes +- tmp="-unknown" ++ beta=no ++ tmp="" + rev="0000000" + rvd="0" + fi +@@ -453,7 +453,7 @@ EOF + fi + + # Check the git setup. +-if [ -d .git ]; then ++if false; then + CP="cp -p" + # If we have a GNU cp we can add -v + if cp --version >/dev/null 2>/dev/null; then diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/patches/0002-gtk2-When-X11-input-grabbing-fails-try-again-over-0..patch b/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/patches/0002-gtk2-When-X11-input-grabbing-fails-try-again-over-0..patch new file mode 100644 index 00000000..294ff005 --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/patches/0002-gtk2-When-X11-input-grabbing-fails-try-again-over-0..patch @@ -0,0 +1,62 @@ +From: Vincent Bernat +Date: Mon, 6 Feb 2017 02:38:59 -0500 +Subject: gtk2: When X11 input grabbing fails, try again over ~0.4 seconds. + +* gtk+-2/pinentry-gtk-2.c (grab_keyboard): Delay 1 ms before retrying +keyboard grab, limit to about 0.2 seconds. +(grab_pointer): Delay 1 ms before retrying pointer_grab, limit to +about 0.2 seconds. + +-- + +These changes were proposed by Vincent Bernat in +https://bugs.debian.org/851707#124 + +Debian-bug-id: 851707 +Signed-off-by: Daniel Kahn Gillmor +--- + gtk+-2/pinentry-gtk-2.c | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/gtk+-2/pinentry-gtk-2.c b/gtk+-2/pinentry-gtk-2.c +index 6d626cc..f329910 100644 +--- a/gtk+-2/pinentry-gtk-2.c ++++ b/gtk+-2/pinentry-gtk-2.c +@@ -161,7 +161,7 @@ static int + grab_keyboard (GtkWidget *win, GdkEvent *event, gpointer data) + { + GdkGrabStatus err; +- int tries = 0, max_tries = 4096; ++ int tries = 0, max_tries = 2048; + (void)data; + + if (! pinentry->grab) +@@ -170,7 +170,8 @@ grab_keyboard (GtkWidget *win, GdkEvent *event, gpointer data) + do + err = gdk_keyboard_grab (gtk_widget_get_window (win), + FALSE, gdk_event_get_time (event)); +- while (tries++ < max_tries && err == GDK_GRAB_NOT_VIEWABLE); ++ while (tries++ < max_tries && err == GDK_GRAB_NOT_VIEWABLE ++ && (usleep(100), TRUE)); + + if (err) + { +@@ -194,7 +195,7 @@ grab_pointer (GtkWidget *win, GdkEvent *event, gpointer data) + { + GdkGrabStatus err; + GdkCursor *cursor; +- int tries = 0, max_tries = 4096; ++ int tries = 0, max_tries = 2048; + (void)data; + + /* Change the cursor for the duration of the grab to indicate that +@@ -216,7 +217,8 @@ grab_pointer (GtkWidget *win, GdkEvent *event, gpointer data) + cursor, + gdk_event_get_time (event)); + while (tries++ < max_tries && (err == GDK_GRAB_NOT_VIEWABLE +- || err == GDK_GRAB_ALREADY_GRABBED)); ++ || err == GDK_GRAB_ALREADY_GRABBED) ++ && (usleep (100), TRUE)); + + if (err) + { diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/patches/series b/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/patches/series new file mode 100644 index 00000000..6be995ed --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/patches/series @@ -0,0 +1,2 @@ +0001-avoid-self-describing-as-a-beta.patch +0002-gtk2-When-X11-input-grabbing-fails-try-again-over-0..patch diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/pinentry-tqt.1 b/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/pinentry-tqt.1 similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/pinentry-tqt.1 rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/pinentry-tqt.1 diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/pinentry-tqt.install b/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/pinentry-tqt.install similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/pinentry-tqt.install rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/pinentry-tqt.install diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/pinentry-tqt.manpages b/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/pinentry-tqt.manpages similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/pinentry-tqt.manpages rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/pinentry-tqt.manpages diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/pinentry-tqt.postinst b/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/pinentry-tqt.postinst similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/pinentry-tqt.postinst rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/pinentry-tqt.postinst diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/pinentry-tqt.prerm b/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/pinentry-tqt.prerm similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/pinentry-tqt.prerm rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/pinentry-tqt.prerm diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/rules b/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/rules similarity index 82% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/rules rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/rules index 745411ce..6e5f6619 100755 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/rules +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/rules @@ -2,7 +2,7 @@ QT_SELECT = qt5 export QT_SELECT -SHARED_CONFIGS = --disable-rpath --without-libcap --disable-pinentry-emacs --disable-inside-emacs --enable-fallback-curses +SHARED_CONFIGS = --disable-rpath --without-libcap --disable-pinentry-emacs --disable-inside-emacs --enable-fallback-curses --disable-pinentry-efl export DEB_BUILD_MAINT_OPTIONS = hardening=+bindnow %: @@ -14,6 +14,7 @@ override_dh_auto_configure: --disable-pinentry-tty \ --disable-pinentry-curses \ --disable-pinentry-qt \ + --disable-pinentry-qt4 \ --disable-pinentry-fltk \ --disable-pinentry-gtk2 \ --disable-pinentry-gnome3 \ @@ -21,11 +22,7 @@ override_dh_auto_configure: override_dh_auto_build: dh_auto_build --builddirectory=build-no-libsecret - -override_dh_missing: - dh_missing --fail-missing + dh_auto_build override_dh_installdocs: dh_installdocs -A NEWS AUTHORS - -LDFLAGS += -Wl,--as-needed diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/source/format b/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/source/format similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/source/format rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/source/format diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/source/options b/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/source/options similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/source/options rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/source/options diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/tests/control b/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/tests/control new file mode 100644 index 00000000..af216f95 --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/tests/control @@ -0,0 +1,4 @@ +Tests: simple-tty +Depends: + pinentry-tty, + python3, diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/tests/simple-tty b/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/tests/simple-tty similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/tests/simple-tty rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/tests/simple-tty diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/upstream/signing-key.asc b/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/upstream/signing-key.asc new file mode 100644 index 00000000..8e2ce73d --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/upstream/signing-key.asc @@ -0,0 +1,103 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +aqa2jnomFAbbCG8mk27O99WWsrMovFfPf0OTcguyy/mvZixJdlXH5qwuh9OxtCVE +YW1pZW4gR291dHRlLUdhdHRhdCA8ZGdnQGluY2VucC5vcmc+iQKABBMBCABqMRpo +dHRwczovL2luY2VucC5vcmcvb3BlbnBncC1rZXlzaWduaW5nLXBvbGljeS50eHQC +GwMFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AWIQRPoggjYv5zrQO4iDCo3HBn4l+6 +uwUCXL4+MQAKCRCo3HBn4l+6uwoGD/4mOKfPL6sDoujPnWv610BsJhxDW1mttBK7 +YiNPdEXDjVAUXawgD48igCVHYFrKKLkXINHFgusgSJtJB1KeHqlxFg4r39gIU783 +3tdDXMPyU8su/ZF5su2W3J3fP5reww/yyG4Bmmc1fHlwNr9tCVqixnqv3KpNJoK3 +BsrtpJOR7rU6SvihKAM8pGWfkBjyn2UVqpoG2sCRhuHIwGx/0Tw2/zwA4zEO++WB +oJFaXW/FWxAEYwMO1EdeuJH3xLK65CtA33A4K6rDgEvR+6ZojRXxsfJfwSTchyuq +tFe4VlPsSduW6DO376rTOizjavANedjRrti5K8Xicvvx07w0zkUKYYHM9WYrTOOk +cLZNuIL430VMEHN47ajLSxib2MIPzjNAJF1luXDKkRiHnwPSDRZAiOEmi9HI8DyT +xfKHNkNJOtZSuBHqqkPNYrvXvjkLrlzMckplbnzrCbfLi3Zew8D9qC7DDwtYO/Z1 +tpHWeeF7mJJbN/VnDKf6+Aon/OBNCjGAVXz/T55PpKNBTv/ezeolPcIn1njZjbQl +W1KHrfa7YJYHRsPhn8qxYaqNrDFWIkRJAHyMgFFYNQRowqmblT+lIwuD1v/ZWDXz +oUVkt2tC4UagtQO/r/IuJVNbdZtyfSzGV+Lkb4bo2gs3i4qLieHVcPBdVXaRF6YS +lM/q8JLxA7kBDQRTI4j+AQgA6GEmtBA2fHPaVeK5V2+Nq2wWX179WZDyKtB9PDiy +FYv1ao3IXtYpfBfnIxDenJHZ8TJlWLD9NCCq6+aeh6V1dzo4OnwJVf7OxVTuGcvJ +81SAxS2fAn9vMTv7/AjyJq7baXl+zP4V6b7yFKgr1tPSqMcMM7u7RZN1nHJsY1I1 +Qo5Nv/7iCs/USc1/pzurJiIMQtD11noC0L49kxV8r3BsCBjXhZN8HGwbt02WX0ae +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 +1q1Leo5CjgY= +=278x +-----END PGP PUBLIC KEY BLOCK----- diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/watch b/debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/watch similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/debian/watch rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/debian/watch diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/depcomp b/debian/pinentry-tqt/pinentry-tqt-1.2.1/depcomp similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/depcomp rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/depcomp diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/doc/HACKING b/debian/pinentry-tqt/pinentry-tqt-1.2.1/doc/HACKING similarity index 96% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/doc/HACKING rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/doc/HACKING index f48721ee..bfdbdde8 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/doc/HACKING +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/doc/HACKING @@ -22,7 +22,7 @@ or smaller, so that the generated ChangeLog lines, each with its leading TAB, will not exceed 80 columns. - For more infomration please check the HACHING file from the GnuPG + For more information please check the HACKING file from the GnuPG project. * String translation diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/doc/Makefile.am b/debian/pinentry-tqt/pinentry-tqt-1.2.1/doc/Makefile.am similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/doc/Makefile.am rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/doc/Makefile.am diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/doc/Makefile.in b/debian/pinentry-tqt/pinentry-tqt-1.2.1/doc/Makefile.in similarity index 93% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/doc/Makefile.in rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/doc/Makefile.in index 678205f6..e127328f 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/doc/Makefile.in +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/doc/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -32,7 +32,17 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -96,18 +106,16 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(pinentry_TEXINFOS) $(top_srcdir)/build-aux/mdate-sh \ - $(srcdir)/version.texi $(srcdir)/stamp-vti \ - $(top_srcdir)/build-aux/texinfo.tex mdate-sh texinfo.tex ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/curses.m4 \ $(top_srcdir)/m4/gpg-error.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/libassuan.m4 $(top_srcdir)/m4/pkg.m4 \ - $(top_srcdir)/m4/qt.m4 $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/qt4.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/version.texi \ + $(srcdir)/stamp-vti $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -201,6 +209,9 @@ am__uninstall_files_from_dir = { \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(pinentry_TEXINFOS) $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/mdate-sh \ + $(top_srcdir)/build-aux/texinfo.tex mdate-sh texinfo.tex DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -225,6 +236,8 @@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ +EFL_CFLAGS = @EFL_CFLAGS@ +EFL_LIBS = @EFL_LIBS@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FLTKCFLAGS = @FLTKCFLAGS@ @@ -234,6 +247,7 @@ FLTK_CONFIG = @FLTK_CONFIG@ GITLOG_TO_CHANGELOG = @GITLOG_TO_CHANGELOG@ GNOME3_CFLAGS = @GNOME3_CFLAGS@ GNOME3_LIBS = @GNOME3_LIBS@ +GPGRT_CONFIG = @GPGRT_CONFIG@ GPG_ERROR_CFLAGS = @GPG_ERROR_CFLAGS@ GPG_ERROR_CONFIG = @GPG_ERROR_CONFIG@ GPG_ERROR_LIBS = @GPG_ERROR_LIBS@ @@ -247,11 +261,12 @@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KF5WAYLANDCLIENT_CFLAGS = @KF5WAYLANDCLIENT_CFLAGS@ +KF5WAYLANDCLIENT_LIBS = @KF5WAYLANDCLIENT_LIBS@ LDFLAGS = @LDFLAGS@ LIBASSUAN_CFLAGS = @LIBASSUAN_CFLAGS@ LIBASSUAN_CONFIG = @LIBASSUAN_CONFIG@ LIBASSUAN_LIBS = @LIBASSUAN_LIBS@ -LIBCAP = @LIBCAP@ LIBCURSES = @LIBCURSES@ LIBICONV = @LIBICONV@ LIBNCURSES = @LIBNCURSES@ @@ -260,6 +275,8 @@ LIBS = @LIBS@ LIBSECRET_CFLAGS = @LIBSECRET_CFLAGS@ LIBSECRET_LIBS = @LIBSECRET_LIBS@ LIBTERMCAP = @LIBTERMCAP@ +LIBX11_CFLAGS = @LIBX11_CFLAGS@ +LIBX11_LIBS = @LIBX11_LIBS@ LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ @@ -268,6 +285,8 @@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ MOC2 = @MOC2@ +MOC4 = @MOC4@ +MOC42 = @MOC42@ NCURSES_CFLAGS = @NCURSES_CFLAGS@ NCURSES_INCLUDE = @NCURSES_INCLUDE@ NCURSES_LIBS = @NCURSES_LIBS@ @@ -281,16 +300,23 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PINENTRY_DEFAULT = @PINENTRY_DEFAULT@ +PINENTRY_QT4_CFLAGS = @PINENTRY_QT4_CFLAGS@ +PINENTRY_QT4_LDFLAGS = @PINENTRY_QT4_LDFLAGS@ +PINENTRY_QT4_LIBS = @PINENTRY_QT4_LIBS@ PINENTRY_QT_CFLAGS = @PINENTRY_QT_CFLAGS@ +PINENTRY_QT_LDFLAGS = @PINENTRY_QT_LDFLAGS@ PINENTRY_QT_LIBS = @PINENTRY_QT_LIBS@ PINENTRY_QT_REQUIRE_CPP11_CFLAGS = @PINENTRY_QT_REQUIRE_CPP11_CFLAGS@ PINENTRY_QT_REQUIRE_CPP11_LIBS = @PINENTRY_QT_REQUIRE_CPP11_LIBS@ +PINENTRY_QT_X11_EXTRAS_CFLAGS = @PINENTRY_QT_X11_EXTRAS_CFLAGS@ +PINENTRY_QT_X11_EXTRAS_LIBS = @PINENTRY_QT_X11_EXTRAS_LIBS@ PINENTRY_TQT_CFLAGS = @PINENTRY_TQT_CFLAGS@ PINENTRY_TQT_LIBS = @PINENTRY_TQT_LIBS@ PKG_CONFIG = @PKG_CONFIG@ QTCHOOSER = @QTCHOOSER@ RANLIB = @RANLIB@ -SETCAP = @SETCAP@ +RCC = @RCC@ +RCC2 = @RCC2@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ @@ -340,6 +366,7 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -368,14 +395,13 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -441,15 +467,16 @@ $(srcdir)/stamp-vti: pinentry.texi $(top_srcdir)/configure echo "@set UPDATED $$1 $$2 $$3"; \ echo "@set UPDATED-MONTH $$2 $$3"; \ echo "@set EDITION $(VERSION)"; \ - echo "@set VERSION $(VERSION)") > vti.tmp - @cmp -s vti.tmp $(srcdir)/version.texi \ - || (echo "Updating $(srcdir)/version.texi"; \ - cp vti.tmp $(srcdir)/version.texi) - -@rm -f vti.tmp + echo "@set VERSION $(VERSION)") > vti.tmp$$$$ && \ + (cmp -s vti.tmp$$$$ $(srcdir)/version.texi \ + || (echo "Updating $(srcdir)/version.texi" && \ + cp vti.tmp$$$$ $(srcdir)/version.texi.tmp$$$$ && \ + mv $(srcdir)/version.texi.tmp$$$$ $(srcdir)/version.texi)) && \ + rm -f vti.tmp$$$$ $(srcdir)/version.texi.$$$$ @cp $(srcdir)/version.texi $@ mostlyclean-vti: - -rm -f vti.tmp + -rm -f vti.tmp* $(srcdir)/version.texi.tmp* maintainer-clean-vti: @MAINTAINER_MODE_TRUE@ -rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi @@ -553,7 +580,10 @@ ctags CTAGS: cscope cscopelist: -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -800,6 +830,8 @@ uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \ uninstall-dvi-am uninstall-html-am uninstall-info-am \ uninstall-pdf-am uninstall-ps-am +.PRECIOUS: Makefile + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/doc/gpl.texi b/debian/pinentry-tqt/pinentry-tqt-1.2.1/doc/gpl.texi similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/doc/gpl.texi rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/doc/gpl.texi diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/doc/mdate-sh b/debian/pinentry-tqt/pinentry-tqt-1.2.1/doc/mdate-sh similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/doc/mdate-sh rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/doc/mdate-sh diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/doc/pinentry.info b/debian/pinentry-tqt/pinentry-tqt-1.2.1/doc/pinentry.info similarity index 90% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/doc/pinentry.info rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/doc/pinentry.info index 03622b89..a560bfaa 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/doc/pinentry.info +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/doc/pinentry.info @@ -1,4 +1,4 @@ -This is pinentry.info, produced by makeinfo version 6.3 from +This is pinentry.info, produced by makeinfo version 6.5 from pinentry.texi. INFO-DIR-SECTION GNU Utilities @@ -8,8 +8,8 @@ END-INFO-DIR-ENTRY This file documents the use and the internals of the PINENTRY. - This is edition 1.1.0, last updated 3 December 2017, of 'The -'PINEntry' Manual', for version 1.1.0. + This is edition 1.2.1, last updated 25 August 2021, of 'The +'PINEntry' Manual', for version 1.2.1. Published by g10 Code GmbH Hüttenstr. 61 @@ -124,15 +124,15 @@ File: pinentry.info, Node: Front ends, Next: Protocol, Prev: Using pinentry, ************ There are several different flavors of PINENTRY. Concretely, there are -Gtk+2, Qt 4, Gnome 3, Emacs, curses and tty variants. These different -implementations provide higher levels of integration with a specific -environment. For instance, the Gnome 3 PINENTRY uses Gnome 3 widgets to -display the prompts. For Gnome 3 users, this higher level of -integration provides a more consistent aesthetic. However, this comes -at a cost. Because this PINENTRY uses so many components, there is a -larger chance of a failure. In particular, there is a larger chance -that the passphrase is saved in memory and that memory is exposed to an -attacker (consider the OpenSSL Heartbeat vulnerability). +Gtk+2, Qt 4/5, TQt, EFL, FLTK, Gnome 3, Emacs, curses and tty variants. +These different implementations provide higher levels of integration +with a specific environment. For instance, the Gnome 3 PINENTRY uses +Gnome 3 widgets to display the prompts. For Gnome 3 users, this higher +level of integration provides a more consistent aesthetic. However, +this comes at a cost. Because this PINENTRY uses so many components, +there is a larger chance of a failure. In particular, there is a larger +chance that the passphrase is saved in memory and that memory is exposed +to an attacker (consider the OpenSSL Heartbeat vulnerability). To understand how many components touch the passphrase, consider again the Gnome 3 implementation. When a user presses a button on the @@ -288,6 +288,57 @@ encoded as '%25', etc.). With STRING being a percent escaped string shown as the tooltip. +'Enable enforcement of passphrase constraints' + This will make the pinentry check whether the new passphrase + entered by the user satisfies the passphrase constraints before + passing the passphrase to gpg-agent and closing the pinentry. This + gives the user the chance to modify the passphrase until the + constraints are satisfied without retyping the passphrase. + C: OPTION constraints-enforce + S: OK + + To inform the user about the constraints a short hint and a longer + hint can be set using + C: OPTION constraints-hint-short=At least 8 characters + S: OK + C: OPTION constraints-hint-long=The passphrase must ... + S: OK + + Additionally, a title for the dialog showing details in case of + unsatisfied constraints can be set using + C: OPTION constraints-error-title=Passphrase Not Allowed + S: OK + + All strings have to be percent escaped. + +'Enable an action for generating a passphrase' + Adds an action for generating a random passphrase to the GETPIN + window. The action is only available when asking for a new + passphrase, i.e. if SETREPEAT has been called. + C: SETGENPIN Suggest + S: OK + + If you want to provide a tooltip for the action, you may use + C: SETGENPIN_TT Suggest a random passphrase + S: OK + +'Enable passphrase formatting' + Passphrase formatting will group the characters of the passphrase + into groups of five characters separated by non-breaking spaces or + a similar separator. This is useful in combination with passphrase + generation to make the generated passphrase easier readable. + C: OPTION formatted-passphrase + S: OK + + Note: If passphrase formatting is enabled, then, depending on the + concrete pinentry, all occurrences of the character used as + separator may be stripped from the entered passphrase. + + To provide a hint for the user that is shown if passphrase + formatting is enabled use + C: OPTION formatted-passphrase-hint=Blanks are not part of the passphrase. + S: OK + 'Ask for a PIN' The meat of this tool is to ask for a passphrase of PIN, it is done with this command: @@ -366,7 +417,7 @@ encoded as '%25', etc.). C: getpin S: S PASSWORD_FROM_CACHE S: D 1234 - C: OK + S: OK Note: if 'allow-external-password-cache' is not specified, an external password cache must not be used: this can lead to subtle @@ -536,6 +587,49 @@ relevant elements that describe the layout: 'quality_bar_tt' A tooltip for the quality bar. +'constraints_enforce' + If this is not 0, then passphrase constraints are enforced by + gpg-agent. In this case pinentry can use the + 'pinentry_inq_checkpin' function for checking whether the new + passphrase satisfies the constraints before passing it to + gpg-agent. + +'constraints_hint_short' + A short translated hint for the user with the constraints for new + passphrases to be displayed near the passphrase input field. + +'constraints_hint_short' + A longer translated hint for the user with the constraints for new + passphrases to be displayed for example as tooltip. + +'constraints_error_title' + A short translated title for an error dialog informing the user + about unsatisfied passphrase constraints. + +'genpin_label' + If this is set, a generate action should be shown. The value of + this field is a label for the action. + + Note: Call the 'pinentry_inq_genpin' function to request a randomly + generated passphrase. + +'genpin_tt' + The tooltip for the generate action. + +'formatted_passphrase' + If this is not 0, then passphrase formatting should be enabled. If + it is enabled, then the unmasked passphrase should be grouped into + groups of five characters separated by non-breaking spaces or a + similar separator. + + To simplify the implementation all occurrences of the character + used as separator can be stripped from the entered passphrase, if + formatting is enabled. + +'formatted_passphrase_hint' + A hint to be shown if passphrase formatting is enabled. It should + be shown near the passphrase input field. + 'default_pwmngr' If 'may_cache_password' and 'keyinfo' are set and the user consents, then the PINENTRY may cache the password with an external @@ -556,6 +650,9 @@ relevant elements that describe the layout: Tooltip for an action that would hide the password revealed by the action labeld with 'default-tt-visi' +'default-capshint' + A hint to be shown if Caps Lock is on. + When the handler is done, it should store the passphrase in 'pin', if appropriate. This variable is allocated in secure memory. Use 'pinentry_setbufferlen' to size the buffer. @@ -980,13 +1077,13 @@ Index  Tag Table: -Node: Top816 -Node: Using pinentry2241 -Node: Front ends4092 -Node: Protocol7644 -Node: Implementation Details16103 -Node: Copying23985 -Node: Option Index43164 -Node: Index44246 +Node: Top815 +Node: Using pinentry2240 +Node: Front ends4091 +Node: Protocol7660 +Node: Implementation Details18285 +Node: Copying27843 +Node: Option Index47022 +Node: Index48104  End Tag Table diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/doc/pinentry.texi b/debian/pinentry-tqt/pinentry-tqt-1.2.1/doc/pinentry.texi similarity index 84% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/doc/pinentry.texi rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/doc/pinentry.texi index 44e2eb1f..11728909 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/doc/pinentry.texi +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/doc/pinentry.texi @@ -100,7 +100,7 @@ This manual documents how to use the @pinentry{} and its protocol. The @pinentry{} is a small GUI application used to enter PINs or passphrases. It is usually invoked by @sc{gpg-agent} (@pxref{Invoking GPG-AGENT, ,Invoking the gpg-agent, gnupg, - The `GNU Privacy Guard' Manual}, for details). + The `GNU Privacy Guard' Manual}, for details). @pinentry{} comes in several flavors to fit the look and feel of the used GUI toolkit: A @sc{GTK+} based one named @code{pinentry-gtk}; a @@ -152,7 +152,7 @@ Here is a list of options supported by all flavors of pinentry: @table @gnupgtabopt @item --version @opindex version -Print the program version and licensing information. +Print the program version and licensing information. @item --help @opindex help @@ -198,10 +198,10 @@ indefinitely, set this to 0, which is the default. @itemx --ttytype @var{string} @itemx --lc-ctype @var{string} @itemx --lc-messages @var{string} -@opindex display -@opindex ttyname -@opindex ttytype -@opindex lc-ctype +@opindex display +@opindex ttyname +@opindex ttytype +@opindex lc-ctype @opindex lc-messa These options are used to pass localization information to @pinentry{}. They are required because @pinentry{} is usually called @@ -214,16 +214,16 @@ options using Assuan protocol options. @chapter Front Ends There are several different flavors of @pinentry{}. Concretely, there -are Gtk+2, Qt@tie{}4, Gnome@tie{}3, Emacs, curses and tty variants. -These different implementations provide higher levels of integration -with a specific environment. For instance, the Gnome@tie{}3 -@pinentry{} uses Gnome@tie{}3 widgets to display the prompts. For -Gnome@tie{}3 users, this higher level of integration provides a more -consistent aesthetic. However, this comes at a cost. Because this -@pinentry{} uses so many components, there is a larger chance of a -failure. In particular, there is a larger chance that the passphrase -is saved in memory and that memory is exposed to an attacker (consider -the OpenSSL Heartbeat vulnerability). +are Gtk+2, Qt@tie{}4/5, TQt, EFL, FLTK, Gnome@tie{}3, Emacs, curses and +tty variants. These different implementations provide higher levels +of integration with a specific environment. For instance, the +Gnome@tie{}3 @pinentry{} uses Gnome@tie{}3 widgets to display the +prompts. For Gnome@tie{}3 users, this higher level of integration +provides a more consistent aesthetic. However, this comes at a cost. +Because this @pinentry{} uses so many components, there is a larger +chance of a failure. In particular, there is a larger chance that the +passphrase is saved in memory and that memory is exposed to an +attacker (consider the OpenSSL Heartbeat vulnerability). To understand how many components touch the passphrase, consider again the Gnome@tie{}3 implementation. When a user presses a button on the @@ -274,7 +274,7 @@ available. If this is not the case, then they fallback to the curses front end. This can also be disabled by passing @code{--disable-fallback-curses} to @code{configure} at build time. -@c +@c @c Assuan Protocol @c @node Protocol @@ -408,6 +408,74 @@ If you want to show a tooltip for the quality bar, you may use With STRING being a percent escaped string shown as the tooltip. +@item Enable enforcement of passphrase constraints +This will make the pinentry check whether the new passphrase entered by +the user satisfies the passphrase constraints before passing the passphrase +to gpg-agent and closing the pinentry. This gives the user the chance to +modify the passphrase until the constraints are satisfied without retyping +the passphrase. +@example + C: OPTION constraints-enforce + S: OK +@end example + +To inform the user about the constraints a short hint and a longer hint +can be set using +@example + C: OPTION constraints-hint-short=At least 8 characters + S: OK + C: OPTION constraints-hint-long=The passphrase must ... + S: OK +@end example + +Additionally, a title for the dialog showing details in case of unsatisfied +constraints can be set using +@example + C: OPTION constraints-error-title=Passphrase Not Allowed + S: OK +@end example + +All strings have to be percent escaped. + + +@item Enable an action for generating a passphrase +Adds an action for generating a random passphrase to the GETPIN window. +The action is only available when asking for a new passphrase, i.e. if +SETREPEAT has been called. +@example + C: SETGENPIN Suggest + S: OK +@end example + +If you want to provide a tooltip for the action, you may use +@example + C: SETGENPIN_TT Suggest a random passphrase + S: OK +@end example + + +@item Enable passphrase formatting +Passphrase formatting will group the characters of the passphrase into +groups of five characters separated by non-breaking spaces or a similar +separator. This is useful in combination with passphrase generation to make +the generated passphrase easier readable. +@example + C: OPTION formatted-passphrase + S: OK +@end example + +Note: If passphrase formatting is enabled, then, depending on the concrete +pinentry, all occurrences of the character used as separator may be stripped +from the entered passphrase. + +To provide a hint for the user that is shown if passphrase formatting is +enabled use +@example + C: OPTION formatted-passphrase-hint=Blanks are not part of the passphrase. + S: OK +@end example + + @item Ask for a PIN The meat of this tool is to ask for a passphrase of PIN, it is done with this command: @@ -499,7 +567,7 @@ the passphrase retry counter. C: getpin S: S PASSWORD_FROM_CACHE S: D 1234 - C: OK + S: OK @end example Note: if @code{allow-external-password-cache} is not specified, an @@ -679,6 +747,47 @@ password quality widget correspondingly. @item @code{quality_bar_tt} A tooltip for the quality bar. +@item @code{constraints_enforce} +If this is not 0, then passphrase constraints are enforced by gpg-agent. +In this case pinentry can use the @code{pinentry_inq_checkpin} function +for checking whether the new passphrase satisfies the constraints before +passing it to gpg-agent. + +@item @code{constraints_hint_short} +A short translated hint for the user with the constraints for new +passphrases to be displayed near the passphrase input field. + +@item @code{constraints_hint_short} +A longer translated hint for the user with the constraints for new +passphrases to be displayed for example as tooltip. + +@item @code{constraints_error_title} +A short translated title for an error dialog informing the user about +unsatisfied passphrase constraints. + +@item @code{genpin_label} +If this is set, a generate action should be shown. The value of this +field is a label for the action. + +Note: Call the @code{pinentry_inq_genpin} function to request a randomly +generated passphrase. + +@item @code{genpin_tt} +The tooltip for the generate action. + +@item @code{formatted_passphrase} +If this is not 0, then passphrase formatting should be enabled. If it is +enabled, then the unmasked passphrase should be grouped into groups of five +characters separated by non-breaking spaces or a similar separator. + +To simplify the implementation all occurrences of the character used as +separator can be stripped from the entered passphrase, if formatting is +enabled. + +@item @code{formatted_passphrase_hint} +A hint to be shown if passphrase formatting is enabled. It should be shown +near the passphrase input field. + @item @code{default_pwmngr} If @code{may_cache_password} and @code{keyinfo} are set and the user consents, then the @pinentry{} may cache the password with an external @@ -699,6 +808,9 @@ Tooltip for an action that would reveal the entered password. Tooltip for an action that would hide the password revealed by the action labeld with @code{default-tt-visi} +@item @code{default-capshint} +A hint to be shown if Caps Lock is on. + @end table When the handler is done, it should store the passphrase in @@ -751,5 +863,3 @@ was pressed. @c --------------------------------------------------------------------- @bye - - diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/doc/stamp-vti b/debian/pinentry-tqt/pinentry-tqt-1.2.1/doc/stamp-vti new file mode 100644 index 00000000..77a967c8 --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/doc/stamp-vti @@ -0,0 +1,4 @@ +@set UPDATED 25 August 2021 +@set UPDATED-MONTH August 2021 +@set EDITION 1.2.1 +@set VERSION 1.2.1 diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/doc/texinfo.tex b/debian/pinentry-tqt/pinentry-tqt-1.2.1/doc/texinfo.tex similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/doc/texinfo.tex rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/doc/texinfo.tex diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/doc/version.texi b/debian/pinentry-tqt/pinentry-tqt-1.2.1/doc/version.texi new file mode 100644 index 00000000..77a967c8 --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/doc/version.texi @@ -0,0 +1,4 @@ +@set UPDATED 25 August 2021 +@set UPDATED-MONTH August 2021 +@set EDITION 1.2.1 +@set VERSION 1.2.1 diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/efl/Makefile.am b/debian/pinentry-tqt/pinentry-tqt-1.2.1/efl/Makefile.am new file mode 100644 index 00000000..23399b07 --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/efl/Makefile.am @@ -0,0 +1,38 @@ +# Makefile.am - PIN entry EFL frontend. +# Copyright (C) 2017 Obsidian-Studios, Inc. +# Author William L. Thomson Jr. +# +# This file is part of PINENTRY. +# +# PINENTRY is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# PINENTRY is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + +## Process this file with automake to produce Makefile.in + +bin_PROGRAMS = pinentry-efl + +if FALLBACK_CURSES +ncurses_include = $(NCURSES_INCLUDE) +libcurses = ../pinentry/libpinentry-curses.a $(LIBCURSES) $(LIBICONV) +else +ncurses_include = +libcurses = +endif + +AM_CPPFLAGS = $(COMMON_CFLAGS) $(EFL_CFLAGS) $(ncurses_include) \ + -I$(top_srcdir)/secmem -I$(top_srcdir)/pinentry +LDADD = ../pinentry/libpinentry.a ../secmem/libsecmem.a \ + $(COMMON_LIBS) $(EFL_LIBS) $(libcurses) + +pinentry_efl_SOURCES = pinentry-efl.c diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/efl/Makefile.in b/debian/pinentry-tqt/pinentry-tqt-1.2.1/efl/Makefile.in new file mode 100644 index 00000000..4d5cec7d --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/efl/Makefile.in @@ -0,0 +1,690 @@ +# Makefile.in generated by automake 1.16.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2020 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Makefile.am - PIN entry EFL frontend. +# Copyright (C) 2017 Obsidian-Studios, Inc. +# Author William L. Thomson Jr. +# +# This file is part of PINENTRY. +# +# PINENTRY is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# PINENTRY is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +bin_PROGRAMS = pinentry-efl$(EXEEXT) +subdir = efl +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/curses.m4 \ + $(top_srcdir)/m4/gpg-error.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/libassuan.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/qt4.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__installdirs = "$(DESTDIR)$(bindir)" +PROGRAMS = $(bin_PROGRAMS) +am_pinentry_efl_OBJECTS = pinentry-efl.$(OBJEXT) +pinentry_efl_OBJECTS = $(am_pinentry_efl_OBJECTS) +pinentry_efl_LDADD = $(LDADD) +am__DEPENDENCIES_1 = +@FALLBACK_CURSES_TRUE@am__DEPENDENCIES_2 = \ +@FALLBACK_CURSES_TRUE@ ../pinentry/libpinentry-curses.a \ +@FALLBACK_CURSES_TRUE@ $(am__DEPENDENCIES_1) \ +@FALLBACK_CURSES_TRUE@ $(am__DEPENDENCIES_1) +pinentry_efl_DEPENDENCIES = ../pinentry/libpinentry.a \ + ../secmem/libsecmem.a $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/pinentry-efl.Po +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(pinentry_efl_SOURCES) +DIST_SOURCES = $(pinentry_efl_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +COMMON_CFLAGS = @COMMON_CFLAGS@ +COMMON_LIBS = @COMMON_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EFL_CFLAGS = @EFL_CFLAGS@ +EFL_LIBS = @EFL_LIBS@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FLTKCFLAGS = @FLTKCFLAGS@ +FLTKCXXFLAGS = @FLTKCXXFLAGS@ +FLTKLIBS = @FLTKLIBS@ +FLTK_CONFIG = @FLTK_CONFIG@ +GITLOG_TO_CHANGELOG = @GITLOG_TO_CHANGELOG@ +GNOME3_CFLAGS = @GNOME3_CFLAGS@ +GNOME3_LIBS = @GNOME3_LIBS@ +GPGRT_CONFIG = @GPGRT_CONFIG@ +GPG_ERROR_CFLAGS = @GPG_ERROR_CFLAGS@ +GPG_ERROR_CONFIG = @GPG_ERROR_CONFIG@ +GPG_ERROR_LIBS = @GPG_ERROR_LIBS@ +GPG_ERROR_MT_CFLAGS = @GPG_ERROR_MT_CFLAGS@ +GPG_ERROR_MT_LIBS = @GPG_ERROR_MT_LIBS@ +GREP = @GREP@ +GTK2_CFLAGS = @GTK2_CFLAGS@ +GTK2_LIBS = @GTK2_LIBS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KF5WAYLANDCLIENT_CFLAGS = @KF5WAYLANDCLIENT_CFLAGS@ +KF5WAYLANDCLIENT_LIBS = @KF5WAYLANDCLIENT_LIBS@ +LDFLAGS = @LDFLAGS@ +LIBASSUAN_CFLAGS = @LIBASSUAN_CFLAGS@ +LIBASSUAN_CONFIG = @LIBASSUAN_CONFIG@ +LIBASSUAN_LIBS = @LIBASSUAN_LIBS@ +LIBCURSES = @LIBCURSES@ +LIBICONV = @LIBICONV@ +LIBNCURSES = @LIBNCURSES@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBSECRET_CFLAGS = @LIBSECRET_CFLAGS@ +LIBSECRET_LIBS = @LIBSECRET_LIBS@ +LIBTERMCAP = @LIBTERMCAP@ +LIBX11_CFLAGS = @LIBX11_CFLAGS@ +LIBX11_LIBS = @LIBX11_LIBS@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MOC2 = @MOC2@ +MOC4 = @MOC4@ +MOC42 = @MOC42@ +NCURSES_CFLAGS = @NCURSES_CFLAGS@ +NCURSES_INCLUDE = @NCURSES_INCLUDE@ +NCURSES_LIBS = @NCURSES_LIBS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PINENTRY_DEFAULT = @PINENTRY_DEFAULT@ +PINENTRY_QT4_CFLAGS = @PINENTRY_QT4_CFLAGS@ +PINENTRY_QT4_LDFLAGS = @PINENTRY_QT4_LDFLAGS@ +PINENTRY_QT4_LIBS = @PINENTRY_QT4_LIBS@ +PINENTRY_QT_CFLAGS = @PINENTRY_QT_CFLAGS@ +PINENTRY_QT_LDFLAGS = @PINENTRY_QT_LDFLAGS@ +PINENTRY_QT_LIBS = @PINENTRY_QT_LIBS@ +PINENTRY_QT_REQUIRE_CPP11_CFLAGS = @PINENTRY_QT_REQUIRE_CPP11_CFLAGS@ +PINENTRY_QT_REQUIRE_CPP11_LIBS = @PINENTRY_QT_REQUIRE_CPP11_LIBS@ +PINENTRY_QT_X11_EXTRAS_CFLAGS = @PINENTRY_QT_X11_EXTRAS_CFLAGS@ +PINENTRY_QT_X11_EXTRAS_LIBS = @PINENTRY_QT_X11_EXTRAS_LIBS@ +PINENTRY_TQT_CFLAGS = @PINENTRY_TQT_CFLAGS@ +PINENTRY_TQT_LIBS = @PINENTRY_TQT_LIBS@ +PKG_CONFIG = @PKG_CONFIG@ +QTCHOOSER = @QTCHOOSER@ +RANLIB = @RANLIB@ +RCC = @RCC@ +RCC2 = @RCC2@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TQT_MOC = @TQT_MOC@ +VERSION = @VERSION@ +WINDRES = @WINDRES@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +@FALLBACK_CURSES_FALSE@ncurses_include = +@FALLBACK_CURSES_TRUE@ncurses_include = $(NCURSES_INCLUDE) +@FALLBACK_CURSES_FALSE@libcurses = +@FALLBACK_CURSES_TRUE@libcurses = ../pinentry/libpinentry-curses.a $(LIBCURSES) $(LIBICONV) +AM_CPPFLAGS = $(COMMON_CFLAGS) $(EFL_CFLAGS) $(ncurses_include) \ + -I$(top_srcdir)/secmem -I$(top_srcdir)/pinentry + +LDADD = ../pinentry/libpinentry.a ../secmem/libsecmem.a \ + $(COMMON_LIBS) $(EFL_LIBS) $(libcurses) + +pinentry_efl_SOURCES = pinentry-efl.c +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu efl/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu efl/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ + fi; \ + for p in $$list; do echo "$$p $$p"; done | \ + sed 's/$(EXEEXT)$$//' | \ + while read p p1; do if test -f $$p \ + ; then echo "$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n;h' \ + -e 's|.*|.|' \ + -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ + sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) files[d] = files[d] " " $$1; \ + else { print "f", $$3 "/" $$4, $$1; } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ + -e 's/$$/$(EXEEXT)/' \ + `; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(bindir)" && rm -f $$files + +clean-binPROGRAMS: + -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) + +pinentry-efl$(EXEEXT): $(pinentry_efl_OBJECTS) $(pinentry_efl_DEPENDENCIES) $(EXTRA_pinentry_efl_DEPENDENCIES) + @rm -f pinentry-efl$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pinentry_efl_OBJECTS) $(pinentry_efl_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pinentry-efl.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(PROGRAMS) +installdirs: + for dir in "$(DESTDIR)$(bindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-binPROGRAMS clean-generic mostlyclean-am + +distclean: distclean-am + -rm -f ./$(DEPDIR)/pinentry-efl.Po + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-binPROGRAMS + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f ./$(DEPDIR)/pinentry-efl.Po + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-binPROGRAMS + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ + clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ + distclean distclean-compile distclean-generic distclean-tags \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-binPROGRAMS install-data install-data-am \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-binPROGRAMS + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/efl/pinentry-efl.c b/debian/pinentry-tqt/pinentry-tqt-1.2.1/efl/pinentry-efl.c new file mode 100644 index 00000000..58796ba1 --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/efl/pinentry-efl.c @@ -0,0 +1,621 @@ +/* pinentry-efl.c + Copyright (C) 2017 Obsidian-Studios, Inc. + Author William L. Thomson Jr. + + Based on pinentry-gtk2.c + Copyright (C) 1999 Robert Bihlmeyer + Copyright (C) 2001, 2002, 2007, 2015 g10 Code GmbH + Copyright (C) 2004 by Albrecht Dreß + + pinentry-efl is a pinentry application for the EFL widget set. + It tries to follow the Gnome Human Interface Guide as close as + possible. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif +#include +#include +#include +#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wstrict-prototypes" +#endif +#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7) +#pragma GCC diagnostic pop +#endif + +#ifdef HAVE_GETOPT_H +#include +#else +#include "getopt.h" +#endif /* HAVE_GETOPT_H */ + +#include "pinentry.h" + +#ifdef FALLBACK_CURSES +#include "pinentry-curses.h" +#endif + +#define PGMNAME "pinentry-efl" + +#ifndef VERSION +#define VERSION +#endif + +#define ENTRY_HIDE "Hide entry" +#define ENTRY_SHOW "Show entry" + +typedef enum { CONFIRM_CANCEL, CONFIRM_OK, CONFIRM_NOTOK } confirm_value_t; + +static const int WIDTH = 480; +static const int BUTTON_HEIGHT = 27; +static const int BUTTON_WIDTH = 70; +static const int BUTTON_ICON_SIZE = 13; +static const int PADDING = 5; + +static Eina_Bool got_input; +static Ecore_Timer *timer; +static Evas_Object *check_label; +static Evas_Object *error_label; +static Evas_Object *entry; +static Evas_Object *repeat_entry; +static Evas_Object *qualitybar; +static Evas_Object *win; +static char **pargv; +static int grab_failed; +static int passphrase_ok; +static int confirm_mode; +static int pargc; +static confirm_value_t confirm_value; +static pinentry_t pinentry; + +pinentry_cmd_handler_t pinentry_cmd_handler; + +static void +quit (void) +{ + evas_object_del(win); + elm_exit(); + ecore_main_loop_quit (); +} + +static void +delete_event (void *data EINA_UNUSED, + Evas_Object *obj EINA_UNUSED, + void *event EINA_UNUSED) +{ + pinentry->close_button = 1; + quit (); +} + +static void +changed_text_handler (void *data EINA_UNUSED, + Evas_Object *obj, + void *event EINA_UNUSED) +{ + const char *s; + int length; + int percent; + + got_input = EINA_TRUE; + + if (pinentry->repeat_passphrase && repeat_entry) + { + elm_object_text_set (repeat_entry, ""); + elm_object_text_set (error_label, ""); + } + + if (!qualitybar || !pinentry->quality_bar) + return; + + s = elm_object_text_get (obj); + if (!s) + s = ""; + length = strlen (s); + percent = length? pinentry_inq_quality (pinentry, s, length) : 0; + evas_object_color_set(qualitybar, + 255 - ( 2.55 * percent ), + 2.55 * percent, 0, 255); + elm_progressbar_value_set (qualitybar, (double) percent / 100.0); +} + +static void +on_check (void *data EINA_UNUSED, Evas_Object *obj, void *event EINA_UNUSED) +{ + if(elm_check_state_get(obj)) + { + elm_entry_password_set(entry, EINA_FALSE); + elm_object_text_set(check_label,ENTRY_HIDE); + } + else + { + elm_entry_password_set(entry, EINA_TRUE); + elm_object_text_set(check_label,ENTRY_SHOW); + } + evas_object_size_hint_min_set(check_label, + ELM_SCALE_SIZE(BUTTON_WIDTH), + ELM_SCALE_SIZE(BUTTON_HEIGHT)); + evas_object_size_hint_align_set(check_label, 0, 1); +} + +static void +on_click (void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED) +{ + if (confirm_mode) + { + confirm_value = (confirm_value_t) data; + quit (); + return; + } + + if (data) + { + const char *s; + const char *s2; + + s = elm_entry_entry_get (entry); + if (!s) + s = ""; + + if (pinentry->repeat_passphrase && repeat_entry) + { + s2 = elm_entry_entry_get (repeat_entry); + if (!s2) + s2 = ""; + if (strcmp (s, s2)) + { + elm_object_text_set(error_label, + pinentry->repeat_error_string? + pinentry->repeat_error_string: + "not correctly repeated"); + elm_object_focus_set(entry,EINA_TRUE); + return; + } + pinentry->repeat_okay = 1; + } + + passphrase_ok = 1; + pinentry_setbufferlen (pinentry, strlen (s) + 1); + if (pinentry->pin) + strncpy (pinentry->pin, s, strlen(s) + 1); + } + quit (); +} + +static void +enter_callback (void *data, Evas_Object * obj, void *event_info EINA_UNUSED) +{ + if (data) + elm_object_focus_set (data, 1); + else + on_click ((void *) CONFIRM_OK, obj, NULL); +} + +static Eina_Bool +timeout_cb (const void * data) +{ + pinentry_t pe = (pinentry_t)data; + if (!got_input) + { + ecore_main_loop_quit(); + if (pe) + pe->specific_err = gpg_error (GPG_ERR_TIMEOUT); + } + + timer = NULL; + return ECORE_CALLBACK_DONE; +} + +static void +create_window (void) +{ + char *txt; + Evas_Object *icon; + Evas_Object *obj; + Evas_Object *table; + int btn_txt_len = 0; + int row = 0; + int ok_len = 0; + + win = elm_win_util_dialog_add(NULL,"pinentry","enter pin"); + elm_win_autodel_set(win, EINA_TRUE); + elm_win_center(win,EINA_TRUE,EINA_TRUE); + evas_object_smart_callback_add(win, "delete,request", delete_event, NULL); + + table = elm_table_add(win); + elm_table_padding_set(table,ELM_SCALE_SIZE(PADDING),0); + evas_object_size_hint_padding_set (table, + ELM_SCALE_SIZE(PADDING), + ELM_SCALE_SIZE(PADDING), + ELM_SCALE_SIZE(PADDING), + ELM_SCALE_SIZE(PADDING)); + evas_object_show(table); + + if (pinentry->title) + { + txt = elm_entry_utf8_to_markup(pinentry->title); + elm_win_title_set ( win, txt ); + free (txt); + } + + /* Description Label */ + if (pinentry->description) + { + char* aligned; + int len; + + obj = elm_label_add(table); + elm_label_line_wrap_set (obj, ELM_WRAP_WORD); + txt = elm_entry_utf8_to_markup(pinentry->description); + len = strlen(txt)+20; // 20 chars for align tag + aligned = calloc(len+1,sizeof(char)); + if(aligned) + { + snprintf(aligned,len, "%s",txt); + elm_object_text_set(obj,aligned); + free (aligned); + } else + elm_object_text_set(obj,txt); + free (txt); + evas_object_size_hint_weight_set(obj, EVAS_HINT_EXPAND, 0); + evas_object_size_hint_align_set(obj, EVAS_HINT_FILL, 0); + elm_table_pack(table, obj, 1, row, 5, 1); + evas_object_show(obj); + row++; + } + if (!confirm_mode && (pinentry->error || pinentry->repeat_passphrase)) + { + /* Error Label */ + if (pinentry->error) + txt = elm_entry_utf8_to_markup(pinentry->error); + else + txt = ""; + obj = elm_label_add(table); + evas_object_color_set(obj, 255, 0, 0, 255); + elm_object_text_set(obj,txt); + elm_object_style_set(obj,"slide_bounce"); + elm_label_slide_duration_set(obj, 10); + elm_label_slide_mode_set(obj, ELM_LABEL_SLIDE_MODE_ALWAYS); + elm_label_slide_go(obj); + evas_object_size_hint_weight_set(obj, EVAS_HINT_EXPAND, 0); + evas_object_size_hint_align_set(obj, EVAS_HINT_FILL, 0); + elm_table_pack(table, obj, 1, row, 5, 1); + evas_object_show(obj); + if (pinentry->error) + free (txt); + row++; + } + + qualitybar = NULL; + + if (!confirm_mode) + { + + if (pinentry->prompt) + { + /* Entry/Prompt Label */ + obj = elm_label_add(table); + txt = elm_entry_utf8_to_markup(pinentry->prompt); + elm_object_text_set(obj,txt); + free (txt); + evas_object_size_hint_weight_set(obj, 0, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(obj, 1, EVAS_HINT_FILL); + elm_table_pack(table, obj, 1, row, 1, 1); + evas_object_show(obj); + } + + entry = elm_entry_add(table); + elm_entry_scrollable_set(entry, EINA_TRUE); + elm_scroller_policy_set(entry, + ELM_SCROLLER_POLICY_OFF, + ELM_SCROLLER_POLICY_OFF); + elm_entry_password_set(entry, EINA_TRUE); + elm_entry_single_line_set(entry, EINA_TRUE); + evas_object_size_hint_weight_set(entry, 0, 0); + evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, 0); + elm_table_pack(table, entry, 2, row, 4, 1); + evas_object_smart_callback_add(entry, + "changed", + changed_text_handler, + NULL); + evas_object_show(entry); + row++; + + /* Check box */ + obj = elm_check_add(table); + evas_object_size_hint_align_set(obj, 1, EVAS_HINT_FILL); + elm_table_pack(table, obj, 1, row, 1, 1); + evas_object_smart_callback_add(obj, "changed", on_check, NULL); + evas_object_show(obj); + + /* Check Label */ + check_label = elm_label_add(table); + on_check((void *)NULL, obj, (void *)NULL); + elm_table_pack(table, check_label, 2, row, 4, 1); + evas_object_show(check_label); + row++; + + if (pinentry->quality_bar) + { + /* Quality Bar Label */ + obj = elm_label_add(table); + txt = elm_entry_utf8_to_markup(pinentry->quality_bar); + elm_object_text_set(obj,txt); + free (txt); + evas_object_size_hint_weight_set(obj, 0, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(obj, 1, EVAS_HINT_FILL); + elm_table_pack(table, obj, 1, row, 1, 1); + evas_object_show(obj); + + qualitybar = elm_progressbar_add(table); + evas_object_color_set(qualitybar, 255, 0, 0, 255); + evas_object_show(qualitybar); + if (pinentry->quality_bar_tt) + elm_object_tooltip_text_set (qualitybar, + pinentry->quality_bar_tt); + evas_object_size_hint_weight_set(qualitybar, EVAS_HINT_EXPAND, 0); + evas_object_size_hint_align_set(qualitybar, EVAS_HINT_FILL, 0); + elm_table_pack(table, qualitybar, 2, row, 4, 1); + row++; + } + + if (pinentry->repeat_passphrase) + { + /* Repeat Label */ + obj = elm_label_add(table); + txt = elm_entry_utf8_to_markup(pinentry->repeat_passphrase); + elm_object_text_set(obj,txt); + free (txt); + evas_object_size_hint_weight_set(obj, 0, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(obj, 1, EVAS_HINT_FILL); + elm_table_pack(table, obj, 1, row, 1, 1); + evas_object_show(obj); + + repeat_entry = elm_entry_add(table); + elm_entry_scrollable_set(repeat_entry, EINA_TRUE); + elm_scroller_policy_set(repeat_entry, + ELM_SCROLLER_POLICY_OFF, + ELM_SCROLLER_POLICY_OFF); + elm_entry_password_set(repeat_entry, EINA_TRUE); + elm_entry_single_line_set(repeat_entry, EINA_TRUE); + evas_object_size_hint_weight_set(repeat_entry, 0, 0); + evas_object_size_hint_align_set(repeat_entry, EVAS_HINT_FILL, 0); + elm_table_pack(table, repeat_entry, 2, row, 4, 1); + evas_object_smart_callback_add (repeat_entry, "activated", + enter_callback, NULL); + evas_object_show(repeat_entry); + evas_object_smart_callback_add (entry, + "activated", + enter_callback, + repeat_entry); + evas_object_smart_callback_add(repeat_entry, + "activated", + on_click, + (void *) CONFIRM_OK); + row++; + } + else + evas_object_smart_callback_add(entry, + "activated", + on_click, + (void *) CONFIRM_OK); + } + + /* Cancel Button */ + if (!pinentry->one_button) + { + obj = elm_button_add(table); + icon = elm_icon_add (table); + evas_object_size_hint_aspect_set (icon, EVAS_ASPECT_CONTROL_BOTH, 1, 1); + if (elm_icon_standard_set (icon, "dialog-cancel") || + elm_icon_standard_set (icon, "window-close")) + { + evas_object_size_hint_min_set(icon, + ELM_SCALE_SIZE(BUTTON_ICON_SIZE), + ELM_SCALE_SIZE(BUTTON_ICON_SIZE)); + elm_object_part_content_set(obj, "icon", icon); + evas_object_show (icon); + } + else + evas_object_del(icon); + if (pinentry->cancel || pinentry->default_cancel) + { + if(pinentry->cancel) + txt = elm_entry_utf8_to_markup(pinentry->cancel); + else + txt = elm_entry_utf8_to_markup(pinentry->default_cancel); + if(txt[0]=='_') + elm_object_text_set(obj,txt+1); + else + elm_object_text_set(obj,txt); + btn_txt_len = ELM_SCALE_SIZE(strlen(txt) * (PADDING * 1.5)); + free (txt); + } + else + elm_object_text_set(obj, "Cancel"); //STOCK_CANCEL + evas_object_size_hint_align_set(obj, 0, 0); + if(btn_txt_len>ELM_SCALE_SIZE(BUTTON_WIDTH)) + evas_object_size_hint_min_set(obj, + btn_txt_len, + ELM_SCALE_SIZE(BUTTON_HEIGHT)); + else + evas_object_size_hint_min_set(obj, + ELM_SCALE_SIZE(BUTTON_WIDTH), + ELM_SCALE_SIZE(BUTTON_HEIGHT)); + elm_table_pack(table, obj, 4, row, 1, 1); + evas_object_smart_callback_add(obj, + "clicked", + on_click, + (void *) CONFIRM_CANCEL); + evas_object_show(obj); + } + + /* OK Button */ + obj = elm_button_add(table); + icon = elm_icon_add (table); + evas_object_size_hint_aspect_set (icon, EVAS_ASPECT_CONTROL_BOTH, 1, 1); + if (elm_icon_standard_set (icon, "dialog-ok") || + elm_icon_standard_set (icon, "list-add")) + { + evas_object_size_hint_min_set(icon, + ELM_SCALE_SIZE(BUTTON_ICON_SIZE), + ELM_SCALE_SIZE(BUTTON_ICON_SIZE)); + elm_object_part_content_set(obj, "icon", icon); + evas_object_show (icon); + } + else + evas_object_del(icon); + if (pinentry->ok || pinentry->default_ok) + { + if(pinentry->ok) + txt = elm_entry_utf8_to_markup(pinentry->ok); + else + txt = elm_entry_utf8_to_markup(pinentry->default_ok); + if(txt[0]=='_') + elm_object_text_set(obj,txt+1); + else + elm_object_text_set(obj,txt); + ok_len = ELM_SCALE_SIZE(strlen(txt) * (PADDING * 1.5)); + if(ok_len>btn_txt_len) + btn_txt_len = ok_len; + free (txt); + } + else + elm_object_text_set(obj,"OK"); //STOCK_OK + evas_object_size_hint_align_set(obj, 0, 0); + if(btn_txt_len>ELM_SCALE_SIZE(BUTTON_WIDTH)) + evas_object_size_hint_min_set(obj, + btn_txt_len, + ELM_SCALE_SIZE(BUTTON_HEIGHT)); + else + evas_object_size_hint_min_set(obj, + ELM_SCALE_SIZE(BUTTON_WIDTH), + ELM_SCALE_SIZE(BUTTON_HEIGHT)); + elm_table_pack(table, obj, 5, row, 1, 1); + evas_object_smart_callback_add(obj, "clicked", on_click, (void *) CONFIRM_OK); + evas_object_show(obj); + + /* Key/Lock Icon */ + obj = elm_icon_add (win); + evas_object_size_hint_aspect_set (obj, EVAS_ASPECT_CONTROL_BOTH, 1, 1); + if (elm_icon_standard_set (obj, "dialog-password")) + { + double ic_size = WIDTH/5; + if(row==0) + ic_size = ic_size/3.5; + else if(row<4) + ic_size = ic_size - ic_size/row; + evas_object_size_hint_min_set(obj, + ELM_SCALE_SIZE(ic_size), + ELM_SCALE_SIZE(ic_size)); + evas_object_size_hint_weight_set(obj, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(obj, EVAS_HINT_FILL, 0.5); + elm_table_pack(table, obj, 0, 0, 1, row? row:1); + evas_object_show (obj); + } + else + evas_object_del(obj); + + /* Box for padding */ + obj = elm_box_add (win); + elm_box_pack_end (obj, table); + evas_object_show (obj); + + elm_win_resize_object_add(win,obj); + + if(entry) + elm_object_focus_set (entry, EINA_TRUE); + + evas_object_show(win); + elm_win_activate(win); + + if (pinentry->timeout > 0) + timer = ecore_timer_add (pinentry->timeout, + (Ecore_Task_Cb)timeout_cb, + pinentry); +} + +static int +efl_cmd_handler (pinentry_t pe) +{ + int want_pass = !!pe->pin; + + got_input = EINA_FALSE; + pinentry = pe; + confirm_value = CONFIRM_CANCEL; + passphrase_ok = 0; + confirm_mode = want_pass ? 0 : 1; + /* init ecore-x explicitly using DISPLAY since this can launch + * from console + */ + if (pe->display) + ecore_x_init (pe->display); + elm_init (pargc, pargv); + create_window (); + ecore_main_loop_begin (); + + if (timer) + { + ecore_timer_del (timer); + timer = NULL; + } + + if (confirm_value == CONFIRM_CANCEL || grab_failed) + pe->canceled = 1; + + pinentry = NULL; + if (want_pass) + { + if (passphrase_ok && pe->pin) + return strlen (pe->pin); + else + return -1; + } + else + return (confirm_value == CONFIRM_OK) ? 1 : 0; +} + +int +main (int argc, char *argv[]) +{ + pinentry_init (PGMNAME); + +#ifdef FALLBACK_CURSES + if (pinentry_have_display (argc, argv)) + { +#endif + + pinentry_cmd_handler = efl_cmd_handler; + pargc = argc; + pargv = argv; + +#ifdef FALLBACK_CURSES + } + else + { + pinentry_cmd_handler = curses_cmd_handler; + } +#endif + + pinentry_parse_opts (argc, argv); + if (pinentry_loop ()) + return 1; + + return 0; +} diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/emacs/Makefile.am b/debian/pinentry-tqt/pinentry-tqt-1.2.1/emacs/Makefile.am similarity index 95% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/emacs/Makefile.am rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/emacs/Makefile.am index c75c93de..6bb806bd 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/emacs/Makefile.am +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/emacs/Makefile.am @@ -23,6 +23,6 @@ bin_PROGRAMS = pinentry-emacs AM_CPPFLAGS = $(COMMON_CFLAGS) $(NEMACS_INCLUDE) -I$(top_srcdir)/pinentry LDADD = ../pinentry/libpinentry.a ../secmem/libsecmem.a \ - $(COMMON_LIBS) $(LIBCAP) $(LIBEMACS) $(LIBICONV) + $(COMMON_LIBS) $(LIBEMACS) $(LIBICONV) pinentry_emacs_SOURCES = pinentry-emacs.c diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/emacs/Makefile.in b/debian/pinentry-tqt/pinentry-tqt-1.2.1/emacs/Makefile.in similarity index 91% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/emacs/Makefile.in rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/emacs/Makefile.in index e2b6bdda..97da3707 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/emacs/Makefile.in +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/emacs/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -34,7 +34,17 @@ # SPDX-License-Identifier: GPL-2.0+ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -99,16 +109,15 @@ build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = pinentry-emacs$(EXEEXT) subdir = emacs -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/build-aux/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/curses.m4 \ $(top_srcdir)/m4/gpg-error.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/libassuan.m4 $(top_srcdir)/m4/pkg.m4 \ - $(top_srcdir)/m4/qt.m4 $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/qt4.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -121,7 +130,7 @@ pinentry_emacs_LDADD = $(LDADD) am__DEPENDENCIES_1 = pinentry_emacs_DEPENDENCIES = ../pinentry/libpinentry.a \ ../secmem/libsecmem.a $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -136,7 +145,8 @@ am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__depfiles_maybe = depfiles +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/pinentry-emacs.Po am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -176,6 +186,8 @@ am__define_uniq_tagged_files = \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -200,6 +212,8 @@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ +EFL_CFLAGS = @EFL_CFLAGS@ +EFL_LIBS = @EFL_LIBS@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FLTKCFLAGS = @FLTKCFLAGS@ @@ -209,6 +223,7 @@ FLTK_CONFIG = @FLTK_CONFIG@ GITLOG_TO_CHANGELOG = @GITLOG_TO_CHANGELOG@ GNOME3_CFLAGS = @GNOME3_CFLAGS@ GNOME3_LIBS = @GNOME3_LIBS@ +GPGRT_CONFIG = @GPGRT_CONFIG@ GPG_ERROR_CFLAGS = @GPG_ERROR_CFLAGS@ GPG_ERROR_CONFIG = @GPG_ERROR_CONFIG@ GPG_ERROR_LIBS = @GPG_ERROR_LIBS@ @@ -222,11 +237,12 @@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KF5WAYLANDCLIENT_CFLAGS = @KF5WAYLANDCLIENT_CFLAGS@ +KF5WAYLANDCLIENT_LIBS = @KF5WAYLANDCLIENT_LIBS@ LDFLAGS = @LDFLAGS@ LIBASSUAN_CFLAGS = @LIBASSUAN_CFLAGS@ LIBASSUAN_CONFIG = @LIBASSUAN_CONFIG@ LIBASSUAN_LIBS = @LIBASSUAN_LIBS@ -LIBCAP = @LIBCAP@ LIBCURSES = @LIBCURSES@ LIBICONV = @LIBICONV@ LIBNCURSES = @LIBNCURSES@ @@ -235,6 +251,8 @@ LIBS = @LIBS@ LIBSECRET_CFLAGS = @LIBSECRET_CFLAGS@ LIBSECRET_LIBS = @LIBSECRET_LIBS@ LIBTERMCAP = @LIBTERMCAP@ +LIBX11_CFLAGS = @LIBX11_CFLAGS@ +LIBX11_LIBS = @LIBX11_LIBS@ LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ @@ -243,6 +261,8 @@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ MOC2 = @MOC2@ +MOC4 = @MOC4@ +MOC42 = @MOC42@ NCURSES_CFLAGS = @NCURSES_CFLAGS@ NCURSES_INCLUDE = @NCURSES_INCLUDE@ NCURSES_LIBS = @NCURSES_LIBS@ @@ -256,16 +276,23 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PINENTRY_DEFAULT = @PINENTRY_DEFAULT@ +PINENTRY_QT4_CFLAGS = @PINENTRY_QT4_CFLAGS@ +PINENTRY_QT4_LDFLAGS = @PINENTRY_QT4_LDFLAGS@ +PINENTRY_QT4_LIBS = @PINENTRY_QT4_LIBS@ PINENTRY_QT_CFLAGS = @PINENTRY_QT_CFLAGS@ +PINENTRY_QT_LDFLAGS = @PINENTRY_QT_LDFLAGS@ PINENTRY_QT_LIBS = @PINENTRY_QT_LIBS@ PINENTRY_QT_REQUIRE_CPP11_CFLAGS = @PINENTRY_QT_REQUIRE_CPP11_CFLAGS@ PINENTRY_QT_REQUIRE_CPP11_LIBS = @PINENTRY_QT_REQUIRE_CPP11_LIBS@ +PINENTRY_QT_X11_EXTRAS_CFLAGS = @PINENTRY_QT_X11_EXTRAS_CFLAGS@ +PINENTRY_QT_X11_EXTRAS_LIBS = @PINENTRY_QT_X11_EXTRAS_LIBS@ PINENTRY_TQT_CFLAGS = @PINENTRY_TQT_CFLAGS@ PINENTRY_TQT_LIBS = @PINENTRY_TQT_LIBS@ PKG_CONFIG = @PKG_CONFIG@ QTCHOOSER = @QTCHOOSER@ RANLIB = @RANLIB@ -SETCAP = @SETCAP@ +RCC = @RCC@ +RCC2 = @RCC2@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ @@ -315,6 +342,7 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -325,7 +353,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CPPFLAGS = $(COMMON_CFLAGS) $(NEMACS_INCLUDE) -I$(top_srcdir)/pinentry LDADD = ../pinentry/libpinentry.a ../secmem/libsecmem.a \ - $(COMMON_LIBS) $(LIBCAP) $(LIBEMACS) $(LIBICONV) + $(COMMON_LIBS) $(LIBEMACS) $(LIBICONV) pinentry_emacs_SOURCES = pinentry-emacs.c all: all-am @@ -344,14 +372,13 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu emacs/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu emacs/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -415,7 +442,13 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pinentry-emacs.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pinentry-emacs.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -483,7 +516,10 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -555,7 +591,7 @@ clean: clean-am clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/pinentry-emacs.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -601,7 +637,7 @@ install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/pinentry-emacs.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -621,7 +657,7 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ distclean distclean-compile distclean-generic distclean-tags \ distdir dvi dvi-am html html-am info info-am install \ @@ -635,6 +671,8 @@ uninstall-am: uninstall-binPROGRAMS ps ps-am tags tags-am uninstall uninstall-am \ uninstall-binPROGRAMS +.PRECIOUS: Makefile + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/emacs/pinentry-emacs.c b/debian/pinentry-tqt/pinentry-tqt-1.2.1/emacs/pinentry-emacs.c similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/emacs/pinentry-emacs.c rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/emacs/pinentry-emacs.c index 57505020..116cddc8 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/emacs/pinentry-emacs.c +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/emacs/pinentry-emacs.c @@ -37,11 +37,11 @@ main (int argc, char *argv[]) { pinentry_init ("pinentry-emacs"); + pinentry_parse_opts (argc, argv); + if (!pinentry_emacs_init ()) return 1; - pinentry_parse_opts (argc, argv); - if (pinentry_loop ()) return 1; diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/fltk/Makefile.am b/debian/pinentry-tqt/pinentry-tqt-1.2.1/fltk/Makefile.am similarity index 93% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/fltk/Makefile.am rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/fltk/Makefile.am index 598c4c4e..660ab4ce 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/fltk/Makefile.am +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/fltk/Makefile.am @@ -13,7 +13,7 @@ endif AM_CPPFLAGS = $(COMMON_CFLAGS) $(FLTKCXXFLAGS) $(ncurses_include) -I$(top_srcdir)/secmem -I$(top_srcdir)/pinentry AM_CXXFLAGS = -std=c++11 -LDADD = ../pinentry/libpinentry.a ../secmem/libsecmem.a $(COMMON_LIBS) $(LIBCAP) $(FLTKLIBS) $(libcurses) +LDADD = ../pinentry/libpinentry.a ../secmem/libsecmem.a $(COMMON_LIBS) $(FLTKLIBS) $(libcurses) pinentry_fltk_SOURCES = main.cxx pinwindow.cxx pinwindow.h \ passwindow.cxx passwindow.h \ diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/fltk/Makefile.in b/debian/pinentry-tqt/pinentry-tqt-1.2.1/fltk/Makefile.in similarity index 90% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/fltk/Makefile.in rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/fltk/Makefile.in index e976508b..78a8c57a 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/fltk/Makefile.in +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/fltk/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -18,7 +18,17 @@ # SPDX-License-Identifier: GPL-2.0+ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -83,16 +93,15 @@ build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = pinentry-fltk$(EXEEXT) subdir = fltk -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/build-aux/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/curses.m4 \ $(top_srcdir)/m4/gpg-error.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/libassuan.m4 $(top_srcdir)/m4/pkg.m4 \ - $(top_srcdir)/m4/qt.m4 $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/qt4.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -110,8 +119,7 @@ am__DEPENDENCIES_1 = @FALLBACK_CURSES_TRUE@ $(am__DEPENDENCIES_1) pinentry_fltk_DEPENDENCIES = ../pinentry/libpinentry.a \ ../secmem/libsecmem.a $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_2) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -126,7 +134,9 @@ am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__depfiles_maybe = depfiles +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/main.Po ./$(DEPDIR)/passwindow.Po \ + ./$(DEPDIR)/pinwindow.Po ./$(DEPDIR)/qualitypasswindow.Po am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) @@ -179,6 +189,8 @@ am__define_uniq_tagged_files = \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -203,6 +215,8 @@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ +EFL_CFLAGS = @EFL_CFLAGS@ +EFL_LIBS = @EFL_LIBS@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FLTKCFLAGS = @FLTKCFLAGS@ @@ -212,6 +226,7 @@ FLTK_CONFIG = @FLTK_CONFIG@ GITLOG_TO_CHANGELOG = @GITLOG_TO_CHANGELOG@ GNOME3_CFLAGS = @GNOME3_CFLAGS@ GNOME3_LIBS = @GNOME3_LIBS@ +GPGRT_CONFIG = @GPGRT_CONFIG@ GPG_ERROR_CFLAGS = @GPG_ERROR_CFLAGS@ GPG_ERROR_CONFIG = @GPG_ERROR_CONFIG@ GPG_ERROR_LIBS = @GPG_ERROR_LIBS@ @@ -225,11 +240,12 @@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KF5WAYLANDCLIENT_CFLAGS = @KF5WAYLANDCLIENT_CFLAGS@ +KF5WAYLANDCLIENT_LIBS = @KF5WAYLANDCLIENT_LIBS@ LDFLAGS = @LDFLAGS@ LIBASSUAN_CFLAGS = @LIBASSUAN_CFLAGS@ LIBASSUAN_CONFIG = @LIBASSUAN_CONFIG@ LIBASSUAN_LIBS = @LIBASSUAN_LIBS@ -LIBCAP = @LIBCAP@ LIBCURSES = @LIBCURSES@ LIBICONV = @LIBICONV@ LIBNCURSES = @LIBNCURSES@ @@ -238,6 +254,8 @@ LIBS = @LIBS@ LIBSECRET_CFLAGS = @LIBSECRET_CFLAGS@ LIBSECRET_LIBS = @LIBSECRET_LIBS@ LIBTERMCAP = @LIBTERMCAP@ +LIBX11_CFLAGS = @LIBX11_CFLAGS@ +LIBX11_LIBS = @LIBX11_LIBS@ LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ @@ -246,6 +264,8 @@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ MOC2 = @MOC2@ +MOC4 = @MOC4@ +MOC42 = @MOC42@ NCURSES_CFLAGS = @NCURSES_CFLAGS@ NCURSES_INCLUDE = @NCURSES_INCLUDE@ NCURSES_LIBS = @NCURSES_LIBS@ @@ -259,16 +279,23 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PINENTRY_DEFAULT = @PINENTRY_DEFAULT@ +PINENTRY_QT4_CFLAGS = @PINENTRY_QT4_CFLAGS@ +PINENTRY_QT4_LDFLAGS = @PINENTRY_QT4_LDFLAGS@ +PINENTRY_QT4_LIBS = @PINENTRY_QT4_LIBS@ PINENTRY_QT_CFLAGS = @PINENTRY_QT_CFLAGS@ +PINENTRY_QT_LDFLAGS = @PINENTRY_QT_LDFLAGS@ PINENTRY_QT_LIBS = @PINENTRY_QT_LIBS@ PINENTRY_QT_REQUIRE_CPP11_CFLAGS = @PINENTRY_QT_REQUIRE_CPP11_CFLAGS@ PINENTRY_QT_REQUIRE_CPP11_LIBS = @PINENTRY_QT_REQUIRE_CPP11_LIBS@ +PINENTRY_QT_X11_EXTRAS_CFLAGS = @PINENTRY_QT_X11_EXTRAS_CFLAGS@ +PINENTRY_QT_X11_EXTRAS_LIBS = @PINENTRY_QT_X11_EXTRAS_LIBS@ PINENTRY_TQT_CFLAGS = @PINENTRY_TQT_CFLAGS@ PINENTRY_TQT_LIBS = @PINENTRY_TQT_LIBS@ PKG_CONFIG = @PKG_CONFIG@ QTCHOOSER = @QTCHOOSER@ RANLIB = @RANLIB@ -SETCAP = @SETCAP@ +RCC = @RCC@ +RCC2 = @RCC2@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ @@ -318,6 +345,7 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -332,7 +360,7 @@ top_srcdir = @top_srcdir@ @FALLBACK_CURSES_TRUE@libcurses = ../pinentry/libpinentry-curses.a $(LIBCURSES) $(LIBICONV) AM_CPPFLAGS = $(COMMON_CFLAGS) $(FLTKCXXFLAGS) $(ncurses_include) -I$(top_srcdir)/secmem -I$(top_srcdir)/pinentry AM_CXXFLAGS = -std=c++11 -LDADD = ../pinentry/libpinentry.a ../secmem/libsecmem.a $(COMMON_LIBS) $(LIBCAP) $(FLTKLIBS) $(libcurses) +LDADD = ../pinentry/libpinentry.a ../secmem/libsecmem.a $(COMMON_LIBS) $(FLTKLIBS) $(libcurses) pinentry_fltk_SOURCES = main.cxx pinwindow.cxx pinwindow.h \ passwindow.cxx passwindow.h \ qualitypasswindow.cxx qualitypasswindow.h @@ -354,14 +382,13 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fltk/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu fltk/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -425,10 +452,16 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/passwindow.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pinwindow.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/qualitypasswindow.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/passwindow.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pinwindow.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/qualitypasswindow.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) .cxx.o: @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -496,7 +529,10 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -568,7 +604,10 @@ clean: clean-am clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/main.Po + -rm -f ./$(DEPDIR)/passwindow.Po + -rm -f ./$(DEPDIR)/pinwindow.Po + -rm -f ./$(DEPDIR)/qualitypasswindow.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -614,7 +653,10 @@ install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/main.Po + -rm -f ./$(DEPDIR)/passwindow.Po + -rm -f ./$(DEPDIR)/pinwindow.Po + -rm -f ./$(DEPDIR)/qualitypasswindow.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -634,7 +676,7 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ distclean distclean-compile distclean-generic distclean-tags \ distdir dvi dvi-am html html-am info info-am install \ @@ -648,6 +690,8 @@ uninstall-am: uninstall-binPROGRAMS ps ps-am tags tags-am uninstall uninstall-am \ uninstall-binPROGRAMS +.PRECIOUS: Makefile + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/fltk/encrypt.xpm b/debian/pinentry-tqt/pinentry-tqt-1.2.1/fltk/encrypt.xpm similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/fltk/encrypt.xpm rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/fltk/encrypt.xpm diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/fltk/icon.xpm b/debian/pinentry-tqt/pinentry-tqt-1.2.1/fltk/icon.xpm similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/fltk/icon.xpm rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/fltk/icon.xpm diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/fltk/main.cxx b/debian/pinentry-tqt/pinentry-tqt-1.2.1/fltk/main.cxx similarity index 86% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/fltk/main.cxx rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/fltk/main.cxx index 8e7e7262..2afad1cd 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/fltk/main.cxx +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/fltk/main.cxx @@ -78,6 +78,44 @@ static std::string escape_accel_utf8(const char *s) return result; } +// For button labels +// Accelerator '_' (used e.g. by GPG2) is converted to '&' (for FLTK) +// '&' is escaped as in escape_accel_utf8() +static std::string convert_accel_utf8(const char *s) +{ + static bool last_was_underscore = false; + std::string result; + if (NULL != s) + { + result.reserve(strlen(s)); + for (const char *p = s; *p; ++p) + { + // & => && + if ('&' == *p) + result.push_back(*p); + // _ => & (handle '__' as escaped underscore) + if ('_' == *p) + { + if (last_was_underscore) + { + result.push_back(*p); + last_was_underscore = false; + } + else + last_was_underscore = true; + } + else + { + if (last_was_underscore) + result.push_back('&'); + result.push_back(*p); + last_was_underscore = false; + } + } + } + return result; +} + class cancel_exception { @@ -111,8 +149,8 @@ static int fltk_cmd_handler(pinentry_t pe) // TODO: Add parent window to pinentry-fltk window //if (pe->parent_wid){} std::string title = !is_empty(pe->title)?pe->title:PGMNAME; - std::string ok = escape_accel_utf8(pe->ok?pe->ok:(pe->default_ok?pe->default_ok:OK_STRING)); - std::string cancel = escape_accel_utf8(pe->cancel?pe->cancel:(pe->default_cancel?pe->default_cancel:CANCEL_STRING)); + std::string ok = convert_accel_utf8(pe->ok?pe->ok:(pe->default_ok?pe->default_ok:OK_STRING)); + std::string cancel = convert_accel_utf8(pe->cancel?pe->cancel:(pe->default_cancel?pe->default_cancel:CANCEL_STRING)); if (!!pe->pin) // password (or confirmation) { @@ -241,12 +279,12 @@ static int fltk_cmd_handler(pinentry_t pe) if (pe->one_button) { fl_ok = ok.c_str(); - fl_message(message); + fl_message("%s", message); result = 1; // OK } else if (pe->notok) { - switch (fl_choice(message, ok.c_str(), cancel.c_str(), pe->notok)) + switch (fl_choice("%s", ok.c_str(), cancel.c_str(), pe->notok, message)) { case 0: result = 1; break; case 2: result = 0; break; @@ -256,7 +294,7 @@ static int fltk_cmd_handler(pinentry_t pe) } else { - switch (fl_choice(message, ok.c_str(), cancel.c_str(), NULL)) + switch (fl_choice("%s", ok.c_str(), cancel.c_str(), NULL, message)) { case 0: result = 1; break; default: diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/fltk/passwindow.cxx b/debian/pinentry-tqt/pinentry-tqt-1.2.1/fltk/passwindow.cxx similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/fltk/passwindow.cxx rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/fltk/passwindow.cxx diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/fltk/passwindow.h b/debian/pinentry-tqt/pinentry-tqt-1.2.1/fltk/passwindow.h similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/fltk/passwindow.h rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/fltk/passwindow.h diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/fltk/pinwindow.cxx b/debian/pinentry-tqt/pinentry-tqt-1.2.1/fltk/pinwindow.cxx similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/fltk/pinwindow.cxx rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/fltk/pinwindow.cxx diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/fltk/pinwindow.h b/debian/pinentry-tqt/pinentry-tqt-1.2.1/fltk/pinwindow.h similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/fltk/pinwindow.h rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/fltk/pinwindow.h diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/fltk/qualitypasswindow.cxx b/debian/pinentry-tqt/pinentry-tqt-1.2.1/fltk/qualitypasswindow.cxx similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/fltk/qualitypasswindow.cxx rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/fltk/qualitypasswindow.cxx diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/fltk/qualitypasswindow.h b/debian/pinentry-tqt/pinentry-tqt-1.2.1/fltk/qualitypasswindow.h similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/fltk/qualitypasswindow.h rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/fltk/qualitypasswindow.h diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/gnome3/Makefile.am b/debian/pinentry-tqt/pinentry-tqt-1.2.1/gnome3/Makefile.am similarity index 95% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/gnome3/Makefile.am rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/gnome3/Makefile.am index 6b7064fd..96ae5a61 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/gnome3/Makefile.am +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/gnome3/Makefile.am @@ -32,6 +32,6 @@ endif AM_CPPFLAGS = $(COMMON_CFLAGS) $(GNOME3_CFLAGS) \ $(ncurses_include) -I$(top_srcdir)/secmem -I$(top_srcdir)/pinentry LDADD = ../pinentry/libpinentry.a ../secmem/libsecmem.a \ - $(COMMON_LIBS) $(LIBCAP) $(GNOME3_LIBS) $(libcurses) + $(COMMON_LIBS) $(GNOME3_LIBS) $(libcurses) pinentry_gnome3_SOURCES = pinentry-gnome3.c diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/gnome3/Makefile.in b/debian/pinentry-tqt/pinentry-tqt-1.2.1/gnome3/Makefile.in similarity index 91% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/gnome3/Makefile.in rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/gnome3/Makefile.in index 6ee497e2..9d4c480e 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/gnome3/Makefile.in +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/gnome3/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -34,7 +34,17 @@ # SPDX-License-Identifier: GPL-2.0+ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -99,16 +109,15 @@ build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = pinentry-gnome3$(EXEEXT) subdir = gnome3 -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/build-aux/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/curses.m4 \ $(top_srcdir)/m4/gpg-error.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/libassuan.m4 $(top_srcdir)/m4/pkg.m4 \ - $(top_srcdir)/m4/qt.m4 $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/qt4.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -125,8 +134,7 @@ am__DEPENDENCIES_1 = @FALLBACK_CURSES_TRUE@ $(am__DEPENDENCIES_1) pinentry_gnome3_DEPENDENCIES = ../pinentry/libpinentry.a \ ../secmem/libsecmem.a $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_2) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -141,7 +149,8 @@ am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__depfiles_maybe = depfiles +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/pinentry-gnome3.Po am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -181,6 +190,8 @@ am__define_uniq_tagged_files = \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -205,6 +216,8 @@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ +EFL_CFLAGS = @EFL_CFLAGS@ +EFL_LIBS = @EFL_LIBS@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FLTKCFLAGS = @FLTKCFLAGS@ @@ -214,6 +227,7 @@ FLTK_CONFIG = @FLTK_CONFIG@ GITLOG_TO_CHANGELOG = @GITLOG_TO_CHANGELOG@ GNOME3_CFLAGS = @GNOME3_CFLAGS@ GNOME3_LIBS = @GNOME3_LIBS@ +GPGRT_CONFIG = @GPGRT_CONFIG@ GPG_ERROR_CFLAGS = @GPG_ERROR_CFLAGS@ GPG_ERROR_CONFIG = @GPG_ERROR_CONFIG@ GPG_ERROR_LIBS = @GPG_ERROR_LIBS@ @@ -227,11 +241,12 @@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KF5WAYLANDCLIENT_CFLAGS = @KF5WAYLANDCLIENT_CFLAGS@ +KF5WAYLANDCLIENT_LIBS = @KF5WAYLANDCLIENT_LIBS@ LDFLAGS = @LDFLAGS@ LIBASSUAN_CFLAGS = @LIBASSUAN_CFLAGS@ LIBASSUAN_CONFIG = @LIBASSUAN_CONFIG@ LIBASSUAN_LIBS = @LIBASSUAN_LIBS@ -LIBCAP = @LIBCAP@ LIBCURSES = @LIBCURSES@ LIBICONV = @LIBICONV@ LIBNCURSES = @LIBNCURSES@ @@ -240,6 +255,8 @@ LIBS = @LIBS@ LIBSECRET_CFLAGS = @LIBSECRET_CFLAGS@ LIBSECRET_LIBS = @LIBSECRET_LIBS@ LIBTERMCAP = @LIBTERMCAP@ +LIBX11_CFLAGS = @LIBX11_CFLAGS@ +LIBX11_LIBS = @LIBX11_LIBS@ LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ @@ -248,6 +265,8 @@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ MOC2 = @MOC2@ +MOC4 = @MOC4@ +MOC42 = @MOC42@ NCURSES_CFLAGS = @NCURSES_CFLAGS@ NCURSES_INCLUDE = @NCURSES_INCLUDE@ NCURSES_LIBS = @NCURSES_LIBS@ @@ -261,16 +280,23 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PINENTRY_DEFAULT = @PINENTRY_DEFAULT@ +PINENTRY_QT4_CFLAGS = @PINENTRY_QT4_CFLAGS@ +PINENTRY_QT4_LDFLAGS = @PINENTRY_QT4_LDFLAGS@ +PINENTRY_QT4_LIBS = @PINENTRY_QT4_LIBS@ PINENTRY_QT_CFLAGS = @PINENTRY_QT_CFLAGS@ +PINENTRY_QT_LDFLAGS = @PINENTRY_QT_LDFLAGS@ PINENTRY_QT_LIBS = @PINENTRY_QT_LIBS@ PINENTRY_QT_REQUIRE_CPP11_CFLAGS = @PINENTRY_QT_REQUIRE_CPP11_CFLAGS@ PINENTRY_QT_REQUIRE_CPP11_LIBS = @PINENTRY_QT_REQUIRE_CPP11_LIBS@ +PINENTRY_QT_X11_EXTRAS_CFLAGS = @PINENTRY_QT_X11_EXTRAS_CFLAGS@ +PINENTRY_QT_X11_EXTRAS_LIBS = @PINENTRY_QT_X11_EXTRAS_LIBS@ PINENTRY_TQT_CFLAGS = @PINENTRY_TQT_CFLAGS@ PINENTRY_TQT_LIBS = @PINENTRY_TQT_LIBS@ PKG_CONFIG = @PKG_CONFIG@ QTCHOOSER = @QTCHOOSER@ RANLIB = @RANLIB@ -SETCAP = @SETCAP@ +RCC = @RCC@ +RCC2 = @RCC2@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ @@ -320,6 +346,7 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -336,7 +363,7 @@ AM_CPPFLAGS = $(COMMON_CFLAGS) $(GNOME3_CFLAGS) \ $(ncurses_include) -I$(top_srcdir)/secmem -I$(top_srcdir)/pinentry LDADD = ../pinentry/libpinentry.a ../secmem/libsecmem.a \ - $(COMMON_LIBS) $(LIBCAP) $(GNOME3_LIBS) $(libcurses) + $(COMMON_LIBS) $(GNOME3_LIBS) $(libcurses) pinentry_gnome3_SOURCES = pinentry-gnome3.c all: all-am @@ -355,14 +382,13 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gnome3/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu gnome3/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -426,7 +452,13 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pinentry-gnome3.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pinentry-gnome3.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -494,7 +526,10 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -566,7 +601,7 @@ clean: clean-am clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/pinentry-gnome3.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -612,7 +647,7 @@ install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/pinentry-gnome3.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -632,7 +667,7 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ distclean distclean-compile distclean-generic distclean-tags \ distdir dvi dvi-am html html-am info info-am install \ @@ -646,6 +681,8 @@ uninstall-am: uninstall-binPROGRAMS ps ps-am tags tags-am uninstall uninstall-am \ uninstall-binPROGRAMS +.PRECIOUS: Makefile + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/gnome3/pinentry-gnome3.c b/debian/pinentry-tqt/pinentry-tqt-1.2.1/gnome3/pinentry-gnome3.c similarity index 98% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/gnome3/pinentry-gnome3.c rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/gnome3/pinentry-gnome3.c index b395676d..0b8d8d18 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/gnome3/pinentry-gnome3.c +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/gnome3/pinentry-gnome3.c @@ -214,7 +214,6 @@ create_prompt (pinentry_t pe, int confirm) ui/frob-system-prompt.c for example conversion using %lu */ snprintf (window_id, sizeof (window_id), "%lu", (long unsigned int)pe->parent_wid); - window_id[sizeof (window_id) - 1] = '\0'; gcr_prompt_set_caller_window (prompt, window_id); #ifdef HAVE_LIBSECRET @@ -446,15 +445,15 @@ pe_gnome_screen_locked (void) NULL, ((const GVariantType *) "(b)"), G_DBUS_CALL_FLAGS_NO_AUTO_START, - 0, + -1, NULL, &error); g_object_unref(dbus); if (!reply) { - /* G_IO_ERROR_TIMED_OUT is the expected response when there is + /* G_IO_ERROR_IS_DIRECTORY is the expected response when there is * no gnome screensaver at all, don't be noisy in that case: */ - if (!(error && error->code == G_IO_ERROR_TIMED_OUT)) + if (!(error && error->code == G_IO_ERROR_IS_DIRECTORY)) fprintf (stderr, "Failed to get d-bus reply for org.gnome.ScreenSaver.GetActive (%d): %s\n", error ? error->code : -1, error ? error->message : ""); diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/gtk+-2/Makefile.am b/debian/pinentry-tqt/pinentry-tqt-1.2.1/gtk+-2/Makefile.am similarity index 96% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/gtk+-2/Makefile.am rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/gtk+-2/Makefile.am index a908f81d..0523b0bf 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/gtk+-2/Makefile.am +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/gtk+-2/Makefile.am @@ -32,6 +32,6 @@ endif AM_CPPFLAGS = $(COMMON_CFLAGS) $(GTK2_CFLAGS) $(ncurses_include) \ -I$(top_srcdir)/secmem -I$(top_srcdir)/pinentry LDADD = ../pinentry/libpinentry.a ../secmem/libsecmem.a \ - $(COMMON_LIBS) $(LIBCAP) $(GTK2_LIBS) $(libcurses) + $(COMMON_LIBS) $(GTK2_LIBS) $(libcurses) pinentry_gtk_2_SOURCES = pinentry-gtk-2.c diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/gtk+-2/Makefile.in b/debian/pinentry-tqt/pinentry-tqt-1.2.1/gtk+-2/Makefile.in similarity index 91% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/gtk+-2/Makefile.in rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/gtk+-2/Makefile.in index 9bc0fe8f..e7280593 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/gtk+-2/Makefile.in +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/gtk+-2/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -34,7 +34,17 @@ # SPDX-License-Identifier: GPL-2.0+ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -99,16 +109,15 @@ build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = pinentry-gtk-2$(EXEEXT) subdir = gtk+-2 -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/build-aux/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/curses.m4 \ $(top_srcdir)/m4/gpg-error.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/libassuan.m4 $(top_srcdir)/m4/pkg.m4 \ - $(top_srcdir)/m4/qt.m4 $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/qt4.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -125,8 +134,7 @@ am__DEPENDENCIES_1 = @FALLBACK_CURSES_TRUE@ $(am__DEPENDENCIES_1) pinentry_gtk_2_DEPENDENCIES = ../pinentry/libpinentry.a \ ../secmem/libsecmem.a $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_2) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -141,7 +149,8 @@ am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__depfiles_maybe = depfiles +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/pinentry-gtk-2.Po am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -181,6 +190,8 @@ am__define_uniq_tagged_files = \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -205,6 +216,8 @@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ +EFL_CFLAGS = @EFL_CFLAGS@ +EFL_LIBS = @EFL_LIBS@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FLTKCFLAGS = @FLTKCFLAGS@ @@ -214,6 +227,7 @@ FLTK_CONFIG = @FLTK_CONFIG@ GITLOG_TO_CHANGELOG = @GITLOG_TO_CHANGELOG@ GNOME3_CFLAGS = @GNOME3_CFLAGS@ GNOME3_LIBS = @GNOME3_LIBS@ +GPGRT_CONFIG = @GPGRT_CONFIG@ GPG_ERROR_CFLAGS = @GPG_ERROR_CFLAGS@ GPG_ERROR_CONFIG = @GPG_ERROR_CONFIG@ GPG_ERROR_LIBS = @GPG_ERROR_LIBS@ @@ -227,11 +241,12 @@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KF5WAYLANDCLIENT_CFLAGS = @KF5WAYLANDCLIENT_CFLAGS@ +KF5WAYLANDCLIENT_LIBS = @KF5WAYLANDCLIENT_LIBS@ LDFLAGS = @LDFLAGS@ LIBASSUAN_CFLAGS = @LIBASSUAN_CFLAGS@ LIBASSUAN_CONFIG = @LIBASSUAN_CONFIG@ LIBASSUAN_LIBS = @LIBASSUAN_LIBS@ -LIBCAP = @LIBCAP@ LIBCURSES = @LIBCURSES@ LIBICONV = @LIBICONV@ LIBNCURSES = @LIBNCURSES@ @@ -240,6 +255,8 @@ LIBS = @LIBS@ LIBSECRET_CFLAGS = @LIBSECRET_CFLAGS@ LIBSECRET_LIBS = @LIBSECRET_LIBS@ LIBTERMCAP = @LIBTERMCAP@ +LIBX11_CFLAGS = @LIBX11_CFLAGS@ +LIBX11_LIBS = @LIBX11_LIBS@ LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ @@ -248,6 +265,8 @@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ MOC2 = @MOC2@ +MOC4 = @MOC4@ +MOC42 = @MOC42@ NCURSES_CFLAGS = @NCURSES_CFLAGS@ NCURSES_INCLUDE = @NCURSES_INCLUDE@ NCURSES_LIBS = @NCURSES_LIBS@ @@ -261,16 +280,23 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PINENTRY_DEFAULT = @PINENTRY_DEFAULT@ +PINENTRY_QT4_CFLAGS = @PINENTRY_QT4_CFLAGS@ +PINENTRY_QT4_LDFLAGS = @PINENTRY_QT4_LDFLAGS@ +PINENTRY_QT4_LIBS = @PINENTRY_QT4_LIBS@ PINENTRY_QT_CFLAGS = @PINENTRY_QT_CFLAGS@ +PINENTRY_QT_LDFLAGS = @PINENTRY_QT_LDFLAGS@ PINENTRY_QT_LIBS = @PINENTRY_QT_LIBS@ PINENTRY_QT_REQUIRE_CPP11_CFLAGS = @PINENTRY_QT_REQUIRE_CPP11_CFLAGS@ PINENTRY_QT_REQUIRE_CPP11_LIBS = @PINENTRY_QT_REQUIRE_CPP11_LIBS@ +PINENTRY_QT_X11_EXTRAS_CFLAGS = @PINENTRY_QT_X11_EXTRAS_CFLAGS@ +PINENTRY_QT_X11_EXTRAS_LIBS = @PINENTRY_QT_X11_EXTRAS_LIBS@ PINENTRY_TQT_CFLAGS = @PINENTRY_TQT_CFLAGS@ PINENTRY_TQT_LIBS = @PINENTRY_TQT_LIBS@ PKG_CONFIG = @PKG_CONFIG@ QTCHOOSER = @QTCHOOSER@ RANLIB = @RANLIB@ -SETCAP = @SETCAP@ +RCC = @RCC@ +RCC2 = @RCC2@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ @@ -320,6 +346,7 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -336,7 +363,7 @@ AM_CPPFLAGS = $(COMMON_CFLAGS) $(GTK2_CFLAGS) $(ncurses_include) \ -I$(top_srcdir)/secmem -I$(top_srcdir)/pinentry LDADD = ../pinentry/libpinentry.a ../secmem/libsecmem.a \ - $(COMMON_LIBS) $(LIBCAP) $(GTK2_LIBS) $(libcurses) + $(COMMON_LIBS) $(GTK2_LIBS) $(libcurses) pinentry_gtk_2_SOURCES = pinentry-gtk-2.c all: all-am @@ -355,14 +382,13 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gtk+-2/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu gtk+-2/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -426,7 +452,13 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pinentry-gtk-2.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pinentry-gtk-2.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -494,7 +526,10 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -566,7 +601,7 @@ clean: clean-am clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/pinentry-gtk-2.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -612,7 +647,7 @@ install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/pinentry-gtk-2.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -632,7 +667,7 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ distclean distclean-compile distclean-generic distclean-tags \ distdir dvi dvi-am html html-am info info-am install \ @@ -646,6 +681,8 @@ uninstall-am: uninstall-binPROGRAMS ps ps-am tags tags-am uninstall uninstall-am \ uninstall-binPROGRAMS +.PRECIOUS: Makefile + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/gtk+-2/pinentry-gtk-2.c b/debian/pinentry-tqt/pinentry-tqt-1.2.1/gtk+-2/pinentry-gtk-2.c similarity index 97% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/gtk+-2/pinentry-gtk-2.c rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/gtk+-2/pinentry-gtk-2.c index c8036284..32112ae3 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/gtk+-2/pinentry-gtk-2.c +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/gtk+-2/pinentry-gtk-2.c @@ -71,9 +71,6 @@ static GtkWidget *entry; static GtkWidget *repeat_entry; static GtkWidget *error_label; static GtkWidget *qualitybar; -#if !GTK_CHECK_VERSION (2, 12, 0) -static GtkTooltips *tooltips; -#endif static gboolean got_input; static guint timeout_source; static int confirm_mode; @@ -402,14 +399,12 @@ changed_text_handler (GtkWidget *widget) else if (percent < 0) { snprintf (textbuf, sizeof textbuf, "(%d%%)", -percent); - textbuf[sizeof textbuf -1] = 0; color.red = 0xffff; percent = -percent; } else { snprintf (textbuf, sizeof textbuf, "%d%%", percent); - textbuf[sizeof textbuf -1] = 0; color.green = 0xffff; } gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (qualitybar), @@ -419,6 +414,23 @@ changed_text_handler (GtkWidget *widget) } +/* Called upon a press on Backspace in the entry widget. + Used to completely disable echoing if we got no prior input. */ +static void +backspace_handler (GtkWidget *widget, gpointer data) +{ + (void)widget; + (void)data; + + if (!got_input) + { + gtk_entry_set_invisible_char (GTK_ENTRY (entry), 0); + if (repeat_entry) + gtk_entry_set_invisible_char (GTK_ENTRY (repeat_entry), 0); + } +} + + #ifdef HAVE_LIBSECRET static void may_save_passphrase_toggled (GtkWidget *widget, gpointer data) @@ -568,10 +580,6 @@ create_window (pinentry_t ctx) repeat_entry = NULL; -#if !GTK_CHECK_VERSION (2, 12, 0) - tooltips = gtk_tooltips_new (); -#endif - /* FIXME: check the grabbing code against the one we used with the old gpg-agent */ win = gtk_window_new (GTK_WINDOW_TOPLEVEL); @@ -713,6 +721,14 @@ create_window (pinentry_t ctx) gtk_widget_set_size_request (entry, 200, -1); g_signal_connect (G_OBJECT (entry), "changed", G_CALLBACK (changed_text_handler), entry); + + /* Enable disabling echo if we're not asking for a PIN. */ + if (pinentry->prompt && !strstr (pinentry->prompt, "PIN")) + { + g_signal_connect (G_OBJECT (entry), "backspace", + G_CALLBACK (backspace_handler), entry); + } + hbox = gtk_hbox_new (FALSE, HIG_TINY); gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 0); /* There was a wish in issue #2139 that this button should not @@ -739,13 +755,8 @@ create_window (pinentry_t ctx) gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (qualitybar), 0.0); if (pinentry->quality_bar_tt && !pinentry->grab) { -#if !GTK_CHECK_VERSION (2, 12, 0) - gtk_tooltips_set_tip (GTK_TOOLTIPS (tooltips), qualitybar, - pinentry->quality_bar_tt, ""); -#else gtk_widget_set_tooltip_text (qualitybar, pinentry->quality_bar_tt); -#endif } gtk_table_attach (GTK_TABLE (table), qualitybar, 1, 2, nrow, nrow+1, GTK_EXPAND|GTK_FILL, GTK_EXPAND|GTK_FILL, 0, 0); @@ -879,7 +890,7 @@ create_window (pinentry_t ctx) gtk_container_add (GTK_CONTAINER(bbox), w); if (!confirm_mode) { - GTK_WIDGET_SET_FLAGS (w, GTK_CAN_DEFAULT); + gtk_widget_set_can_default (w, TRUE); gtk_widget_grab_default (w); } diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/install-sh b/debian/pinentry-tqt/pinentry-tqt-1.2.1/install-sh similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/install-sh rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/install-sh diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/m4/ChangeLog b/debian/pinentry-tqt/pinentry-tqt-1.2.1/m4/ChangeLog similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/m4/ChangeLog rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/m4/ChangeLog diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/m4/Makefile.am b/debian/pinentry-tqt/pinentry-tqt-1.2.1/m4/Makefile.am similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/m4/Makefile.am rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/m4/Makefile.am diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/m4/Makefile.in b/debian/pinentry-tqt/pinentry-tqt-1.2.1/m4/Makefile.in similarity index 90% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/m4/Makefile.in rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/m4/Makefile.in index 8e3263d0..0fb709b6 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/m4/Makefile.in +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/m4/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -14,7 +14,17 @@ @SET_MAKE@ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -78,15 +88,15 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = m4 -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ChangeLog ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/curses.m4 \ $(top_srcdir)/m4/gpg-error.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/libassuan.m4 $(top_srcdir)/m4/pkg.m4 \ - $(top_srcdir)/m4/qt.m4 $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/qt4.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -111,6 +121,7 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in ChangeLog DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -135,6 +146,8 @@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ +EFL_CFLAGS = @EFL_CFLAGS@ +EFL_LIBS = @EFL_LIBS@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FLTKCFLAGS = @FLTKCFLAGS@ @@ -144,6 +157,7 @@ FLTK_CONFIG = @FLTK_CONFIG@ GITLOG_TO_CHANGELOG = @GITLOG_TO_CHANGELOG@ GNOME3_CFLAGS = @GNOME3_CFLAGS@ GNOME3_LIBS = @GNOME3_LIBS@ +GPGRT_CONFIG = @GPGRT_CONFIG@ GPG_ERROR_CFLAGS = @GPG_ERROR_CFLAGS@ GPG_ERROR_CONFIG = @GPG_ERROR_CONFIG@ GPG_ERROR_LIBS = @GPG_ERROR_LIBS@ @@ -157,11 +171,12 @@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KF5WAYLANDCLIENT_CFLAGS = @KF5WAYLANDCLIENT_CFLAGS@ +KF5WAYLANDCLIENT_LIBS = @KF5WAYLANDCLIENT_LIBS@ LDFLAGS = @LDFLAGS@ LIBASSUAN_CFLAGS = @LIBASSUAN_CFLAGS@ LIBASSUAN_CONFIG = @LIBASSUAN_CONFIG@ LIBASSUAN_LIBS = @LIBASSUAN_LIBS@ -LIBCAP = @LIBCAP@ LIBCURSES = @LIBCURSES@ LIBICONV = @LIBICONV@ LIBNCURSES = @LIBNCURSES@ @@ -170,6 +185,8 @@ LIBS = @LIBS@ LIBSECRET_CFLAGS = @LIBSECRET_CFLAGS@ LIBSECRET_LIBS = @LIBSECRET_LIBS@ LIBTERMCAP = @LIBTERMCAP@ +LIBX11_CFLAGS = @LIBX11_CFLAGS@ +LIBX11_LIBS = @LIBX11_LIBS@ LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ @@ -178,6 +195,8 @@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ MOC2 = @MOC2@ +MOC4 = @MOC4@ +MOC42 = @MOC42@ NCURSES_CFLAGS = @NCURSES_CFLAGS@ NCURSES_INCLUDE = @NCURSES_INCLUDE@ NCURSES_LIBS = @NCURSES_LIBS@ @@ -191,16 +210,23 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PINENTRY_DEFAULT = @PINENTRY_DEFAULT@ +PINENTRY_QT4_CFLAGS = @PINENTRY_QT4_CFLAGS@ +PINENTRY_QT4_LDFLAGS = @PINENTRY_QT4_LDFLAGS@ +PINENTRY_QT4_LIBS = @PINENTRY_QT4_LIBS@ PINENTRY_QT_CFLAGS = @PINENTRY_QT_CFLAGS@ +PINENTRY_QT_LDFLAGS = @PINENTRY_QT_LDFLAGS@ PINENTRY_QT_LIBS = @PINENTRY_QT_LIBS@ PINENTRY_QT_REQUIRE_CPP11_CFLAGS = @PINENTRY_QT_REQUIRE_CPP11_CFLAGS@ PINENTRY_QT_REQUIRE_CPP11_LIBS = @PINENTRY_QT_REQUIRE_CPP11_LIBS@ +PINENTRY_QT_X11_EXTRAS_CFLAGS = @PINENTRY_QT_X11_EXTRAS_CFLAGS@ +PINENTRY_QT_X11_EXTRAS_LIBS = @PINENTRY_QT_X11_EXTRAS_LIBS@ PINENTRY_TQT_CFLAGS = @PINENTRY_TQT_CFLAGS@ PINENTRY_TQT_LIBS = @PINENTRY_TQT_LIBS@ PKG_CONFIG = @PKG_CONFIG@ QTCHOOSER = @QTCHOOSER@ RANLIB = @RANLIB@ -SETCAP = @SETCAP@ +RCC = @RCC@ +RCC2 = @RCC2@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ @@ -250,6 +276,7 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -276,14 +303,13 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu m4/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu m4/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -301,7 +327,10 @@ ctags CTAGS: cscope cscopelist: -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -444,6 +473,8 @@ uninstall-am: maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am +.PRECIOUS: Makefile + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/m4/curses.m4 b/debian/pinentry-tqt/pinentry-tqt-1.2.1/m4/curses.m4 similarity index 90% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/m4/curses.m4 rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/m4/curses.m4 index 792159c8..572d3214 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/m4/curses.m4 +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/m4/curses.m4 @@ -43,14 +43,12 @@ AC_DEFUN([IU_LIB_NCURSES], [ # Use ncurses header files instead of the ordinary ones, if possible; # is there a better way of doing this, that avoids looking in specific # directories? - AC_ARG_WITH(ncurses-include-dir, -[ --with-ncurses-include-dir=DIR - Set directory containing the include files for + AC_ARG_WITH([ncurses-include-dir], + AS_HELP_STRING([--with-ncurses-include-dir=DIR], + [Set directory containing the include files for use with -lncurses, when it isn't installed as the default curses library. If DIR is "none", - then no special ncurses include files are used. - --without-ncurses-include-dir - Equivalent to --with-ncurses-include-dir=none])dnl + then no special ncurses include files are used.])) if test "${with_ncurses_include_dir+set}" = set; then AC_MSG_CHECKING(for ncurses include dir) case "$with_ncurses_include_dir" in @@ -112,9 +110,9 @@ AC_DEFUN([IU_LIB_TERMCAP], [ fi AC_SUBST(LIBTERMCAP)])dnl -dnl IU_LIB_CURSES -- checke for curses, and associated libraries +dnl IU_LIB_CURSES -- check for curses, and associated libraries dnl -dnl Checks for varions libraries implementing the curses interface, and if +dnl Checks for various libraries implementing the curses interface, and if dnl found, defines LIBCURSES to be the appropriate linker specification, dnl *including* any termcap libraries if needed (some versions of curses dnl don't need termcap). @@ -132,9 +130,7 @@ AC_DEFUN([IU_LIB_CURSES], [ AC_CACHE_CHECK(whether curses needs $LIBTERMCAP, inetutils_cv_curses_needs_termcap, LIBS="$LIBCURSES" - AC_TRY_LINK([#include ], [initscr ();], - [inetutils_cv_curses_needs_termcap=no], - [inetutils_cv_curses_needs_termcap=yes])) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[initscr ();]])],[inetutils_cv_curses_needs_termcap=no],[inetutils_cv_curses_needs_termcap=yes])) if test $inetutils_cv_curses_needs_termcap = yes; then LIBCURSES="$LIBCURSES $LIBTERMCAP" fi diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/m4/glib.m4 b/debian/pinentry-tqt/pinentry-tqt-1.2.1/m4/glib.m4 similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/m4/glib.m4 rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/m4/glib.m4 diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/m4/gpg-error.m4 b/debian/pinentry-tqt/pinentry-tqt-1.2.1/m4/gpg-error.m4 new file mode 100644 index 00000000..4b5cd40b --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/m4/gpg-error.m4 @@ -0,0 +1,208 @@ +# gpg-error.m4 - autoconf macro to detect libgpg-error. +# Copyright (C) 2002, 2003, 2004, 2011, 2014, 2018, 2020, 2021 +# g10 Code GmbH +# +# This file is free software; as a special exception the author gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. +# +# This file is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# +# Last-changed: 2022-02-15 + + +dnl AM_PATH_GPG_ERROR([MINIMUM-VERSION, +dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]]) +dnl +dnl Test for libgpg-error and define GPG_ERROR_CFLAGS, GPG_ERROR_LIBS, +dnl GPG_ERROR_MT_CFLAGS, and GPG_ERROR_MT_LIBS. The _MT_ variants are +dnl used for programs requireing real multi thread support. +dnl +dnl If a prefix option is not used, the config script is first +dnl searched in $SYSROOT/bin and then along $PATH. If the used +dnl config script does not match the host specification the script +dnl is added to the gpg_config_script_warn variable. +dnl +AC_DEFUN([AM_PATH_GPG_ERROR], +[ AC_REQUIRE([AC_CANONICAL_HOST]) + gpg_error_config_prefix="" + dnl --with-libgpg-error-prefix=PFX is the preferred name for this option, + dnl since that is consistent with how our three siblings use the directory/ + dnl package name in --with-$dir_name-prefix=PFX. + AC_ARG_WITH(libgpg-error-prefix, + AS_HELP_STRING([--with-libgpg-error-prefix=PFX], + [prefix where GPG Error is installed (optional)]), + [gpg_error_config_prefix="$withval"]) + + dnl Accept --with-gpg-error-prefix and make it work the same as + dnl --with-libgpg-error-prefix above, for backwards compatibility, + dnl but do not document this old, inconsistently-named option. + AC_ARG_WITH(gpg-error-prefix,, + [gpg_error_config_prefix="$withval"]) + + if test x"${GPG_ERROR_CONFIG}" = x ; then + if test x"${gpg_error_config_prefix}" != x ; then + GPG_ERROR_CONFIG="${gpg_error_config_prefix}/bin/gpg-error-config" + else + case "${SYSROOT}" in + /*) + if test -x "${SYSROOT}/bin/gpg-error-config" ; then + GPG_ERROR_CONFIG="${SYSROOT}/bin/gpg-error-config" + fi + ;; + '') + ;; + *) + AC_MSG_WARN([Ignoring \$SYSROOT as it is not an absolute path.]) + ;; + esac + fi + fi + + AC_PATH_PROG(GPG_ERROR_CONFIG, gpg-error-config, no) + min_gpg_error_version=ifelse([$1], ,1.33,$1) + ok=no + + AC_PATH_PROG(GPGRT_CONFIG, gpgrt-config, no, [$prefix/bin:$PATH]) + if test "$GPGRT_CONFIG" != "no"; then + # Determine gpgrt_libdir + # + # Get the prefix of gpgrt-config assuming it's something like: + # /bin/gpgrt-config + gpgrt_prefix=${GPGRT_CONFIG%/*/*} + possible_libdir1=${gpgrt_prefix}/lib + # Determine by using system libdir-format with CC, it's like: + # Normal style: /usr/lib + # GNU cross style: /usr//lib + # Debian style: /usr/lib/ + # Fedora/openSUSE style: /usr/lib, /usr/lib32 or /usr/lib64 + # It is assumed that CC is specified to the one of host on cross build. + if libdir_candidates=$(${CC:-cc} -print-search-dirs | \ + sed -n -e "/^libraries/{s/libraries: =//;s/:/\\ +/g;p;}"); then + # From the output of -print-search-dirs, select valid pkgconfig dirs. + libdir_candidates=$(for dir in $libdir_candidates; do + if p=$(cd $dir 2>/dev/null && pwd); then + test -d "$p/pkgconfig" && echo $p; + fi + done) + + for possible_libdir0 in $libdir_candidates; do + # possible_libdir0: + # Fallback candidate, the one of system-installed (by $CC) + # (/usr//lib, /usr/lib/ or /usr/lib32) + # possible_libdir1: + # Another candidate, user-locally-installed + # (/lib) + # possible_libdir2 + # Most preferred + # (//lib, + # /lib/ or /lib32) + if test "${possible_libdir0##*/}" = "lib"; then + possible_prefix0=${possible_libdir0%/lib} + possible_prefix0_triplet=${possible_prefix0##*/} + if test -z "$possible_prefix0_triplet"; then + continue + fi + possible_libdir2=${gpgrt_prefix}/$possible_prefix0_triplet/lib + else + possible_prefix0=${possible_libdir0%%/lib*} + possible_libdir2=${gpgrt_prefix}${possible_libdir0#$possible_prefix0} + fi + if test -f ${possible_libdir2}/pkgconfig/gpg-error.pc; then + gpgrt_libdir=${possible_libdir2} + elif test -f ${possible_libdir1}/pkgconfig/gpg-error.pc; then + gpgrt_libdir=${possible_libdir1} + elif test -f ${possible_libdir0}/pkgconfig/gpg-error.pc; then + gpgrt_libdir=${possible_libdir0} + fi + if test -n "$gpgrt_libdir"; then break; fi + done + else + # When we cannot determine system libdir-format, use this: + gpgrt_libdir=${possible_libdir1} + fi + else + unset GPGRT_CONFIG + fi + + if test -n "$gpgrt_libdir"; then + GPGRT_CONFIG="$GPGRT_CONFIG --libdir=$gpgrt_libdir" + if $GPGRT_CONFIG gpg-error >/dev/null 2>&1; then + GPG_ERROR_CONFIG="$GPGRT_CONFIG gpg-error" + AC_MSG_NOTICE([Use gpgrt-config with $gpgrt_libdir as gpg-error-config]) + gpg_error_config_version=`$GPG_ERROR_CONFIG --modversion` + else + unset GPGRT_CONFIG + fi + elif test "$GPG_ERROR_CONFIG" != "no"; then + gpg_error_config_version=`$GPG_ERROR_CONFIG --version` + unset GPGRT_CONFIG + fi + if test "$GPG_ERROR_CONFIG" != "no"; then + req_major=`echo $min_gpg_error_version | \ + sed 's/\([[0-9]]*\)\.\([[0-9]]*\)/\1/'` + req_minor=`echo $min_gpg_error_version | \ + sed 's/\([[0-9]]*\)\.\([[0-9]]*\)/\2/'` + major=`echo $gpg_error_config_version | \ + sed 's/\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'` + minor=`echo $gpg_error_config_version | \ + sed 's/\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'` + if test "$major" -gt "$req_major"; then + ok=yes + else + if test "$major" -eq "$req_major"; then + if test "$minor" -ge "$req_minor"; then + ok=yes + fi + fi + fi + fi + AC_MSG_CHECKING(for GPG Error - version >= $min_gpg_error_version) + if test $ok = yes; then + GPG_ERROR_CFLAGS=`$GPG_ERROR_CONFIG --cflags` + GPG_ERROR_LIBS=`$GPG_ERROR_CONFIG --libs` + if test -z "$GPGRT_CONFIG"; then + GPG_ERROR_MT_CFLAGS=`$GPG_ERROR_CONFIG --mt --cflags 2>/dev/null` + GPG_ERROR_MT_LIBS=`$GPG_ERROR_CONFIG --mt --libs 2>/dev/null` + else + GPG_ERROR_MT_CFLAGS=`$GPG_ERROR_CONFIG --variable=mtcflags 2>/dev/null` + GPG_ERROR_MT_CFLAGS="$GPG_ERROR_CFLAGS${GPG_ERROR_CFLAGS:+ }$GPG_ERROR_MT_CFLAGS" + GPG_ERROR_MT_LIBS=`$GPG_ERROR_CONFIG --variable=mtlibs 2>/dev/null` + GPG_ERROR_MT_LIBS="$GPG_ERROR_LIBS${GPG_ERROR_LIBS:+ }$GPG_ERROR_MT_LIBS" + fi + AC_MSG_RESULT([yes ($gpg_error_config_version)]) + ifelse([$2], , :, [$2]) + if test -z "$GPGRT_CONFIG"; then + gpg_error_config_host=`$GPG_ERROR_CONFIG --host 2>/dev/null || echo none` + else + gpg_error_config_host=`$GPG_ERROR_CONFIG --variable=host 2>/dev/null || echo none` + fi + if test x"$gpg_error_config_host" != xnone ; then + if test x"$gpg_error_config_host" != x"$host" ; then + AC_MSG_WARN([[ +*** +*** The config script "$GPG_ERROR_CONFIG" was +*** built for $gpg_error_config_host and thus may not match the +*** used host $host. +*** You may want to use the configure option --with-libgpg-error-prefix +*** to specify a matching config script or use \$SYSROOT. +***]]) + gpg_config_script_warn="$gpg_config_script_warn libgpg-error" + fi + fi + else + GPG_ERROR_CFLAGS="" + GPG_ERROR_LIBS="" + GPG_ERROR_MT_CFLAGS="" + GPG_ERROR_MT_LIBS="" + AC_MSG_RESULT(no) + ifelse([$3], , :, [$3]) + fi + AC_SUBST(GPG_ERROR_CFLAGS) + AC_SUBST(GPG_ERROR_LIBS) + AC_SUBST(GPG_ERROR_MT_CFLAGS) + AC_SUBST(GPG_ERROR_MT_LIBS) +]) diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/m4/gtk.m4 b/debian/pinentry-tqt/pinentry-tqt-1.2.1/m4/gtk.m4 similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/m4/gtk.m4 rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/m4/gtk.m4 diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/m4/iconv.m4 b/debian/pinentry-tqt/pinentry-tqt-1.2.1/m4/iconv.m4 new file mode 100644 index 00000000..a285e9da --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/m4/iconv.m4 @@ -0,0 +1,288 @@ +# iconv.m4 serial 21 +dnl Copyright (C) 2000-2002, 2007-2014, 2016-2019 Free Software Foundation, +dnl Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], +[ + dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + + dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV + dnl accordingly. + AC_LIB_LINKFLAGS_BODY([iconv]) +]) + +AC_DEFUN([AM_ICONV_LINK], +[ + dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and + dnl those with the standalone portable GNU libiconv installed). + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + + dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV + dnl accordingly. + AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) + + dnl Add $INCICONV to CPPFLAGS before performing the following checks, + dnl because if the user has installed libiconv and not disabled its use + dnl via --without-libiconv-prefix, he wants to use it. The first + dnl AC_LINK_IFELSE will then fail, the second AC_LINK_IFELSE will succeed. + am_save_CPPFLAGS="$CPPFLAGS" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) + + AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [ + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#include + ]], + [[iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);]])], + [am_cv_func_iconv=yes]) + if test "$am_cv_func_iconv" != yes; then + am_save_LIBS="$LIBS" + LIBS="$LIBS $LIBICONV" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#include + ]], + [[iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);]])], + [am_cv_lib_iconv=yes] + [am_cv_func_iconv=yes]) + LIBS="$am_save_LIBS" + fi + ]) + if test "$am_cv_func_iconv" = yes; then + AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [ + dnl This tests against bugs in AIX 5.1, AIX 6.1..7.1, HP-UX 11.11, + dnl Solaris 10. + am_save_LIBS="$LIBS" + if test $am_cv_lib_iconv = yes; then + LIBS="$LIBS $LIBICONV" + fi + am_cv_func_iconv_works=no + for ac_iconv_const in '' 'const'; do + AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#include + +#ifndef ICONV_CONST +# define ICONV_CONST $ac_iconv_const +#endif + ]], + [[int result = 0; + /* Test against AIX 5.1 bug: Failures are not distinguishable from successful + returns. */ + { + iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); + if (cd_utf8_to_88591 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */ + char buf[10]; + ICONV_CONST char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_utf8_to_88591, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + result |= 1; + iconv_close (cd_utf8_to_88591); + } + } + /* Test against Solaris 10 bug: Failures are not distinguishable from + successful returns. */ + { + iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); + if (cd_ascii_to_88591 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\263"; + char buf[10]; + ICONV_CONST char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_ascii_to_88591, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + result |= 2; + iconv_close (cd_ascii_to_88591); + } + } + /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\304"; + static char buf[2] = { (char)0xDE, (char)0xAD }; + ICONV_CONST char *inptr = input; + size_t inbytesleft = 1; + char *outptr = buf; + size_t outbytesleft = 1; + size_t res = iconv (cd_88591_to_utf8, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) + result |= 4; + iconv_close (cd_88591_to_utf8); + } + } +#if 0 /* This bug could be worked around by the caller. */ + /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; + char buf[50]; + ICONV_CONST char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_88591_to_utf8, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if ((int)res > 0) + result |= 8; + iconv_close (cd_88591_to_utf8); + } + } +#endif + /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is + provided. */ + { + /* Try standardized names. */ + iconv_t cd1 = iconv_open ("UTF-8", "EUC-JP"); + /* Try IRIX, OSF/1 names. */ + iconv_t cd2 = iconv_open ("UTF-8", "eucJP"); + /* Try AIX names. */ + iconv_t cd3 = iconv_open ("UTF-8", "IBM-eucJP"); + /* Try HP-UX names. */ + iconv_t cd4 = iconv_open ("utf8", "eucJP"); + if (cd1 == (iconv_t)(-1) && cd2 == (iconv_t)(-1) + && cd3 == (iconv_t)(-1) && cd4 == (iconv_t)(-1)) + result |= 16; + if (cd1 != (iconv_t)(-1)) + iconv_close (cd1); + if (cd2 != (iconv_t)(-1)) + iconv_close (cd2); + if (cd3 != (iconv_t)(-1)) + iconv_close (cd3); + if (cd4 != (iconv_t)(-1)) + iconv_close (cd4); + } + return result; +]])], + [am_cv_func_iconv_works=yes], , + [case "$host_os" in + aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; + *) am_cv_func_iconv_works="guessing yes" ;; + esac]) + test "$am_cv_func_iconv_works" = no || break + done + LIBS="$am_save_LIBS" + ]) + case "$am_cv_func_iconv_works" in + *no) am_func_iconv=no am_cv_lib_iconv=no ;; + *) am_func_iconv=yes ;; + esac + else + am_func_iconv=no am_cv_lib_iconv=no + fi + if test "$am_func_iconv" = yes; then + AC_DEFINE([HAVE_ICONV], [1], + [Define if you have the iconv() function and it works.]) + fi + if test "$am_cv_lib_iconv" = yes; then + AC_MSG_CHECKING([how to link with libiconv]) + AC_MSG_RESULT([$LIBICONV]) + else + dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV + dnl either. + CPPFLAGS="$am_save_CPPFLAGS" + LIBICONV= + LTLIBICONV= + fi + AC_SUBST([LIBICONV]) + AC_SUBST([LTLIBICONV]) +]) + +dnl Define AM_ICONV using AC_DEFUN_ONCE for Autoconf >= 2.64, in order to +dnl avoid warnings like +dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required". +dnl This is tricky because of the way 'aclocal' is implemented: +dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN. +dnl Otherwise aclocal's initial scan pass would miss the macro definition. +dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions. +dnl Otherwise aclocal would emit many "Use of uninitialized value $1" +dnl warnings. +m4_define([gl_iconv_AC_DEFUN], + m4_version_prereq([2.64], + [[AC_DEFUN_ONCE( + [$1], [$2])]], + [m4_ifdef([gl_00GNULIB], + [[AC_DEFUN_ONCE( + [$1], [$2])]], + [[AC_DEFUN( + [$1], [$2])]])])) +gl_iconv_AC_DEFUN([AM_ICONV], +[ + AM_ICONV_LINK + if test "$am_cv_func_iconv" = yes; then + AC_MSG_CHECKING([for iconv declaration]) + AC_CACHE_VAL([am_cv_proto_iconv], [ + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#include +extern +#ifdef __cplusplus +"C" +#endif +#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) +size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); +#else +size_t iconv(); +#endif + ]], + [[]])], + [am_cv_proto_iconv_arg1=""], + [am_cv_proto_iconv_arg1="const"]) + am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) + am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` + AC_MSG_RESULT([ + $am_cv_proto_iconv]) + else + dnl When compiling GNU libiconv on a system that does not have iconv yet, + dnl pick the POSIX compliant declaration without 'const'. + am_cv_proto_iconv_arg1="" + fi + AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1], + [Define as const if the declaration of iconv() needs const.]) + dnl Also substitute ICONV_CONST in the gnulib generated . + m4_ifdef([gl_ICONV_H_DEFAULTS], + [AC_REQUIRE([gl_ICONV_H_DEFAULTS]) + if test -n "$am_cv_proto_iconv_arg1"; then + ICONV_CONST="const" + fi + ]) +]) diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/m4/libassuan.m4 b/debian/pinentry-tqt/pinentry-tqt-1.2.1/m4/libassuan.m4 similarity index 75% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/m4/libassuan.m4 rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/m4/libassuan.m4 index c953843e..df504841 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/m4/libassuan.m4 +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/m4/libassuan.m4 @@ -8,6 +8,8 @@ dnl dnl This file is distributed in the hope that it will be useful, but dnl WITHOUT ANY WARRANTY, to the extent permitted by law; without even the dnl implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +dnl SPDX-License-Identifier: FSFULLR +# Last-changed: 2020-11-17 dnl dnl Common code used for libassuan detection [internal] @@ -16,30 +18,26 @@ dnl AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_ARG_WITH(libassuan-prefix, - AC_HELP_STRING([--with-libassuan-prefix=PFX], + AS_HELP_STRING([--with-libassuan-prefix=PFX], [prefix where LIBASSUAN is installed (optional)]), libassuan_config_prefix="$withval", libassuan_config_prefix="") if test x$libassuan_config_prefix != x ; then - libassuan_config_args="$libassuan_config_args --prefix=$libassuan_config_prefix" if test x${LIBASSUAN_CONFIG+set} != xset ; then LIBASSUAN_CONFIG=$libassuan_config_prefix/bin/libassuan-config fi - else - case "${SYSROOT}" in - /*) - if test -x "${SYSROOT}/bin/libassuan-config" ; then - LIBASSUAN_CONFIG="${SYSROOT}/bin/libassuan-config" - fi - ;; - '') - ;; - *) - AC_MSG_WARN([Ignoring \$SYSROOT as it is not an absolute path.]) - ;; - esac fi - AC_PATH_TOOL(LIBASSUAN_CONFIG, libassuan-config, no) + use_gpgrt_config="" + if test x"${LIBASSUAN_CONFIG}" = x -a x"$GPGRT_CONFIG" != x -a "$GPGRT_CONFIG" != "no"; then + if $GPGRT_CONFIG libassuan --exists; then + LIBASSUAN_CONFIG="$GPGRT_CONFIG libassuan" + AC_MSG_NOTICE([Use gpgrt-config as libassuan-config]) + use_gpgrt_config=yes + fi + fi + if test -z "$use_gpgrt_config"; then + AC_PATH_PROG(LIBASSUAN_CONFIG, libassuan-config, no) + fi tmp=ifelse([$1], ,1:0.9.2,$1) if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then @@ -52,8 +50,7 @@ AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON], AC_MSG_CHECKING(for LIBASSUAN - version >= $min_libassuan_version) ok=no - if test "$LIBASSUAN_CONFIG" != "no" \ - && test -f "$LIBASSUAN_CONFIG" ; then + if test "$LIBASSUAN_CONFIG" != "no"; then req_major=`echo $min_libassuan_version | \ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'` req_minor=`echo $min_libassuan_version | \ @@ -61,7 +58,11 @@ AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON], req_micro=`echo $min_libassuan_version | \ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'` - libassuan_config_version=`$LIBASSUAN_CONFIG --version` + if test -z "$use_gpgrt_config"; then + libassuan_config_version=`$LIBASSUAN_CONFIG --version` + else + libassuan_config_version=`$LIBASSUAN_CONFIG --modversion` + fi major=`echo $libassuan_config_version | \ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'` minor=`echo $libassuan_config_version | \ @@ -94,7 +95,11 @@ AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON], if test $ok = yes; then if test "$req_libassuan_api" -gt 0 ; then - tmp=`$LIBASSUAN_CONFIG --api-version 2>/dev/null || echo 0` + if test -z "$use_gpgrt_config"; then + tmp=`$LIBASSUAN_CONFIG --api-version 2>/dev/null || echo 0` + else + tmp=`$LIBASSUAN_CONFIG --variable=api_version 2>/dev/null || echo 0` + fi if test "$tmp" -gt 0 ; then AC_MSG_CHECKING([LIBASSUAN API version]) if test "$req_libassuan_api" -eq "$tmp" ; then @@ -109,16 +114,20 @@ AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON], if test $ok = yes; then if test x"$host" != x ; then - libassuan_config_host=`$LIBASSUAN_CONFIG --host 2>/dev/null || echo none` + if test -z "$use_gpgrt_config"; then + libassuan_config_host=`$LIBASSUAN_CONFIG --host 2>/dev/null || echo none` + else + libassuan_config_host=`$LIBASSUAN_CONFIG --variable=host 2>/dev/null || echo none` + fi if test x"$libassuan_config_host" != xnone ; then if test x"$libassuan_config_host" != x"$host" ; then AC_MSG_WARN([[ *** -*** The config script $LIBASSUAN_CONFIG was +*** The config script "$LIBASSUAN_CONFIG" was *** built for $libassuan_config_host and thus may not match the *** used host $host. *** You may want to use the configure option --with-libassuan-prefix -*** to specify a matching config script or use \$SYSROOT. +*** to specify a matching config script. ***]]) fi fi @@ -150,8 +159,8 @@ dnl AC_DEFUN([AM_PATH_LIBASSUAN], [ _AM_PATH_LIBASSUAN_COMMON($1) if test $ok = yes; then - LIBASSUAN_CFLAGS=`$LIBASSUAN_CONFIG $libassuan_config_args --cflags` - LIBASSUAN_LIBS=`$LIBASSUAN_CONFIG $libassuan_config_args --libs` + LIBASSUAN_CFLAGS=`$LIBASSUAN_CONFIG --cflags` + LIBASSUAN_LIBS=`$LIBASSUAN_CONFIG --libs` ifelse([$2], , :, [$2]) else LIBASSUAN_CFLAGS="" diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/m4/pkg.m4 b/debian/pinentry-tqt/pinentry-tqt-1.2.1/m4/pkg.m4 similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/m4/pkg.m4 rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/m4/pkg.m4 diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/m4/qt.m4 b/debian/pinentry-tqt/pinentry-tqt-1.2.1/m4/qt.m4 similarity index 61% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/m4/qt.m4 rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/m4/qt.m4 index 35d9ae2e..fdf99913 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/m4/qt.m4 +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/m4/qt.m4 @@ -17,19 +17,18 @@ dnl You should have received a copy of the GNU General Public License dnl along with this program; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA -dnl Autoconf macro to find either Qt4 or Qt5 +dnl Autoconf macro to find Qt5 dnl dnl sets PINENTRY_QT_LIBS and PINENTRY_QT_CFLAGS dnl -dnl if QT5 was found have_qt5_libs is set to yes -dnl if QT4 was found have_qt4_libs is set to yes +dnl if Qt5 was found have_qt5_libs is set to yes dnl dnl The moc lookup code is based on libpoppler (rev. d821207) AC_DEFUN([FIND_QT], [ AC_ARG_ENABLE(pinentry-qt5, - AC_HELP_STRING([--disable-pinentry-qt5], + AS_HELP_STRING([--disable-pinentry-qt5], [Don't use qt5 even if it is available.]), enable_pinentry_qt5=$enableval, enable_pinentry_qt5="try") @@ -57,6 +56,28 @@ AC_DEFUN([FIND_QT], PINENTRY_QT_CFLAGS="$PINENTRY_QT_CFLAGS -std=c++11" fi + qtlibdir=`"$PKG_CONFIG" --variable libdir Qt5Core` + if test -n "$qtlibdir"; then + if test "$enable_rpath" != "no"; then + PINENTRY_QT_LDFLAGS="$PINENTRY_QT_LDFLAGS -Wl,-rpath \"$qtlibdir\"" + fi + fi + + if test "$have_x11" = "yes"; then + PKG_CHECK_MODULES( + PINENTRY_QT_X11_EXTRAS, + Qt5X11Extras >= 5.1.0, + [have_qt5_x11extras="yes"], + [ + AC_MSG_WARN([pinentry-qt will be built without Caps Lock warning on X11]) + have_qt5_x11extras="no" + ]) + if test "$have_qt5_x11extras" = "yes"; then + PINENTRY_QT_CFLAGS="$LIBX11_CFLAGS $PINENTRY_QT_CFLAGS $PINENTRY_QT_X11_EXTRAS_CFLAGS" + PINENTRY_QT_LIBS="$LIBX11_LIBS $PINENTRY_QT_LIBS $PINENTRY_QT_X11_EXTRAS_LIBS" + fi + fi + AC_CHECK_TOOL(MOC, moc) AC_MSG_CHECKING([moc version]) mocversion=`$MOC -v 2>&1` @@ -82,31 +103,32 @@ AC_DEFUN([FIND_QT], MOC=$MOC2 fi fi - fi - if test "$have_qt5_libs" != "yes"; then - PKG_CHECK_MODULES(PINENTRY_QT, - QtCore >= 4.6.0 QtGui >= 4.6.0, - [have_qt4_libs="yes"], - [have_qt4_libs="no"]) - if test "$have_qt4_libs" = "yes"; then - AC_CHECK_TOOL(MOC, moc) - AC_MSG_CHECKING([moc version]) - mocversion=`$MOC -v 2>&1` - mocversiongrep=`echo $mocversion | grep "Qt 4"` - if test x"$mocversiongrep" != x"$mocversion"; then - AC_MSG_RESULT([no]) - # moc was not the qt4 one, try with moc-qt4 - AC_CHECK_TOOL(MOC2, moc-qt4) - mocversion=`$MOC2 -v 2>&1` - mocversiongrep=`echo $mocversion | grep "Qt 4"` - if test x"$mocversiongrep" != x"$mocversion"; then - # no valid moc found - have_qt4_libs="no"; - MOC="not found" + + AC_CHECK_TOOL(RCC, rcc) + AC_MSG_CHECKING([rcc version]) + rccversion=`$RCC -v 2>&1` + rccversiongrep=`echo $rccversion | grep -E "Qt 5|rcc 5"` + if test x"$rccversiongrep" != x"$rccversion"; then + AC_MSG_RESULT([no]) + # rcc was not the qt5 one, try with rcc-qt5 + AC_CHECK_TOOL(RCC2, rcc-qt5) + rccversion=`$RCC2 -v 2>&1` + rccversiongrep=`echo $rccversion | grep -E "Qt 5|rcc-qt5 5|rcc 5"` + if test x"$rccversiongrep" != x"$rccversion"; then + AC_CHECK_TOOL(QTCHOOSER, qtchooser) + qt5tooldir=`QT_SELECT=qt5 qtchooser -print-env | grep QTTOOLDIR | cut -d '=' -f 2 | cut -d \" -f 2` + rccversion=`$qt5tooldir/rcc -v 2>&1` + rccversiongrep=`echo $rccversion | grep -E "Qt 5|rcc 5"` + if test x"$rccversiongrep" != x"$rccversion"; then + # no valid rcc found + have_qt5_libs="no"; else - MOC=$MOC2 + RCC=$qt5tooldir/rcc fi + else + RCC=$RCC2 fi fi + fi ]) diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/m4/qt4.m4 b/debian/pinentry-tqt/pinentry-tqt-1.2.1/m4/qt4.m4 new file mode 100644 index 00000000..9212e574 --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/m4/qt4.m4 @@ -0,0 +1,58 @@ +dnl qt4.m4 +dnl Copyright (C) 2015 Intevation GmbH +dnl +dnl This file is part of PINENTRY. +dnl +dnl PINENTRY is free software; you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation; either version 2 of the License, or +dnl (at your option) any later version. +dnl +dnl PINENTRY is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +dnl GNU General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with this program; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + +dnl Autoconf macro to find either Qt4 +dnl +dnl sets PINENTRY_QT4_LIBS and PINENTRY_QT4_CFLAGS +dnl +dnl if Qt4 was found have_qt4_libs is set to yes +dnl +dnl The moc lookup code is based on libpoppler (rev. d821207) + +AC_DEFUN([FIND_QT4], +[ + have_qt4_libs="no"; + + if test "$enable_pinentry_qt4" != "no"; then + PKG_CHECK_MODULES(PINENTRY_QT4, + QtCore >= 4.6.0 QtGui >= 4.6.0, + [have_qt4_libs="yes"], + [have_qt4_libs="no"]) + fi + if test "$have_qt4_libs" = "yes"; then + AC_CHECK_TOOL(MOC4, moc) + AC_MSG_CHECKING([moc version]) + mocversion=`$MOC4 -v 2>&1` + mocversiongrep=`echo $mocversion | grep "Qt 4"` + if test x"$mocversiongrep" != x"$mocversion"; then + AC_MSG_RESULT([no]) + # moc was not the qt4 one, try with moc-qt4 + AC_CHECK_TOOL(MOC42, moc-qt4) + mocversion=`$MOC42 -v 2>&1` + mocversiongrep=`echo $mocversion | grep "Qt 4"` + if test x"$mocversiongrep" != x"$mocversion"; then + # no valid moc found + have_qt4_libs="no"; + MOC4="not found" + else + MOC4=$MOC42 + fi + fi + fi +]) diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/missing b/debian/pinentry-tqt/pinentry-tqt-1.2.1/missing similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/missing rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/missing diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/mkinstalldirs b/debian/pinentry-tqt/pinentry-tqt-1.2.1/mkinstalldirs similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/mkinstalldirs rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/mkinstalldirs diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/pinentry/Makefile.am b/debian/pinentry-tqt/pinentry-tqt-1.2.1/pinentry/Makefile.am similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/pinentry/Makefile.am rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/pinentry/Makefile.am diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/pinentry/Makefile.in b/debian/pinentry-tqt/pinentry-tqt-1.2.1/pinentry/Makefile.in similarity index 87% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/pinentry/Makefile.in rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/pinentry/Makefile.in index 1bd15103..5d4f9154 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/pinentry/Makefile.in +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/pinentry/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -34,7 +34,17 @@ # SPDX-License-Identifier: GPL-2.0+ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -98,16 +108,15 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = pinentry -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/build-aux/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/curses.m4 \ $(top_srcdir)/m4/gpg-error.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/libassuan.m4 $(top_srcdir)/m4/pkg.m4 \ - $(top_srcdir)/m4/qt.m4 $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/qt4.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -148,7 +157,11 @@ am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__depfiles_maybe = depfiles +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/argparse.Po \ + ./$(DEPDIR)/libpinentry_curses_a-pinentry-curses.Po \ + ./$(DEPDIR)/password-cache.Po ./$(DEPDIR)/pinentry-emacs.Po \ + ./$(DEPDIR)/pinentry.Po am__mv = mv -f AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) @@ -193,6 +206,8 @@ am__define_uniq_tagged_files = \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -217,6 +232,8 @@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ +EFL_CFLAGS = @EFL_CFLAGS@ +EFL_LIBS = @EFL_LIBS@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FLTKCFLAGS = @FLTKCFLAGS@ @@ -226,6 +243,7 @@ FLTK_CONFIG = @FLTK_CONFIG@ GITLOG_TO_CHANGELOG = @GITLOG_TO_CHANGELOG@ GNOME3_CFLAGS = @GNOME3_CFLAGS@ GNOME3_LIBS = @GNOME3_LIBS@ +GPGRT_CONFIG = @GPGRT_CONFIG@ GPG_ERROR_CFLAGS = @GPG_ERROR_CFLAGS@ GPG_ERROR_CONFIG = @GPG_ERROR_CONFIG@ GPG_ERROR_LIBS = @GPG_ERROR_LIBS@ @@ -239,11 +257,12 @@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KF5WAYLANDCLIENT_CFLAGS = @KF5WAYLANDCLIENT_CFLAGS@ +KF5WAYLANDCLIENT_LIBS = @KF5WAYLANDCLIENT_LIBS@ LDFLAGS = @LDFLAGS@ LIBASSUAN_CFLAGS = @LIBASSUAN_CFLAGS@ LIBASSUAN_CONFIG = @LIBASSUAN_CONFIG@ LIBASSUAN_LIBS = @LIBASSUAN_LIBS@ -LIBCAP = @LIBCAP@ LIBCURSES = @LIBCURSES@ LIBICONV = @LIBICONV@ LIBNCURSES = @LIBNCURSES@ @@ -252,6 +271,8 @@ LIBS = @LIBS@ LIBSECRET_CFLAGS = @LIBSECRET_CFLAGS@ LIBSECRET_LIBS = @LIBSECRET_LIBS@ LIBTERMCAP = @LIBTERMCAP@ +LIBX11_CFLAGS = @LIBX11_CFLAGS@ +LIBX11_LIBS = @LIBX11_LIBS@ LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ @@ -260,6 +281,8 @@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ MOC2 = @MOC2@ +MOC4 = @MOC4@ +MOC42 = @MOC42@ NCURSES_CFLAGS = @NCURSES_CFLAGS@ NCURSES_INCLUDE = @NCURSES_INCLUDE@ NCURSES_LIBS = @NCURSES_LIBS@ @@ -273,16 +296,23 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PINENTRY_DEFAULT = @PINENTRY_DEFAULT@ +PINENTRY_QT4_CFLAGS = @PINENTRY_QT4_CFLAGS@ +PINENTRY_QT4_LDFLAGS = @PINENTRY_QT4_LDFLAGS@ +PINENTRY_QT4_LIBS = @PINENTRY_QT4_LIBS@ PINENTRY_QT_CFLAGS = @PINENTRY_QT_CFLAGS@ +PINENTRY_QT_LDFLAGS = @PINENTRY_QT_LDFLAGS@ PINENTRY_QT_LIBS = @PINENTRY_QT_LIBS@ PINENTRY_QT_REQUIRE_CPP11_CFLAGS = @PINENTRY_QT_REQUIRE_CPP11_CFLAGS@ PINENTRY_QT_REQUIRE_CPP11_LIBS = @PINENTRY_QT_REQUIRE_CPP11_LIBS@ +PINENTRY_QT_X11_EXTRAS_CFLAGS = @PINENTRY_QT_X11_EXTRAS_CFLAGS@ +PINENTRY_QT_X11_EXTRAS_LIBS = @PINENTRY_QT_X11_EXTRAS_LIBS@ PINENTRY_TQT_CFLAGS = @PINENTRY_TQT_CFLAGS@ PINENTRY_TQT_LIBS = @PINENTRY_TQT_LIBS@ PKG_CONFIG = @PKG_CONFIG@ QTCHOOSER = @QTCHOOSER@ RANLIB = @RANLIB@ -SETCAP = @SETCAP@ +RCC = @RCC@ +RCC2 = @RCC2@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ @@ -332,6 +362,7 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -369,14 +400,13 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu pinentry/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu pinentry/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -407,11 +437,17 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argparse.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpinentry_curses_a-pinentry-curses.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/password-cache.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pinentry-emacs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pinentry.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argparse.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpinentry_curses_a-pinentry-curses.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/password-cache.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pinentry-emacs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pinentry.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -493,7 +529,10 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -562,7 +601,11 @@ clean: clean-am clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am distclean: distclean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/argparse.Po + -rm -f ./$(DEPDIR)/libpinentry_curses_a-pinentry-curses.Po + -rm -f ./$(DEPDIR)/password-cache.Po + -rm -f ./$(DEPDIR)/pinentry-emacs.Po + -rm -f ./$(DEPDIR)/pinentry.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -608,7 +651,11 @@ install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/argparse.Po + -rm -f ./$(DEPDIR)/libpinentry_curses_a-pinentry-curses.Po + -rm -f ./$(DEPDIR)/password-cache.Po + -rm -f ./$(DEPDIR)/pinentry-emacs.Po + -rm -f ./$(DEPDIR)/pinentry.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -628,18 +675,20 @@ uninstall-am: .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ - clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \ - distclean-compile distclean-generic distclean-tags distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ - uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ + clean-generic clean-noinstLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/pinentry/argparse.c b/debian/pinentry-tqt/pinentry-tqt-1.2.1/pinentry/argparse.c similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/pinentry/argparse.c rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/pinentry/argparse.c diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/pinentry/argparse.h b/debian/pinentry-tqt/pinentry-tqt-1.2.1/pinentry/argparse.h similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/pinentry/argparse.h rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/pinentry/argparse.h diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/pinentry/password-cache.c b/debian/pinentry-tqt/pinentry-tqt-1.2.1/pinentry/password-cache.c similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/pinentry/password-cache.c rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/pinentry/password-cache.c diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/pinentry/password-cache.h b/debian/pinentry-tqt/pinentry-tqt-1.2.1/pinentry/password-cache.h similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/pinentry/password-cache.h rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/pinentry/password-cache.h diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/pinentry/pinentry-curses.c b/debian/pinentry-tqt/pinentry-tqt-1.2.1/pinentry/pinentry-curses.c similarity index 80% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/pinentry/pinentry-curses.c rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/pinentry/pinentry-curses.c index 89bb5b6e..cc4cecbe 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/pinentry/pinentry-curses.c +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/pinentry/pinentry-curses.c @@ -29,7 +29,29 @@ #include #include #include -#include +#if defined(HAVE_LANGINFO_H) +# include +#elif defined(HAVE_W32_SYSTEM) +# include +# ifndef WIN32_LEAN_AND_MEAN +# define WIN32_LEAN_AND_MEAN +# endif +# include +/* A simple replacement for nl_langinfo that only understands + CODESET. */ +# define CODESET 1 +char * +nl_langinfo (int ignore) +{ + static char codepage[20]; + UINT cp = GetACP (); + + (void)ignore; + + sprintf (codepage, "CP%u", cp); + return codepage; +} +#endif #include #include #include @@ -94,6 +116,8 @@ struct dialog int pin_max; /* Length of PIN. */ int pin_len; + int got_input; + int no_echo; int ok_y; int ok_x; @@ -108,11 +132,154 @@ struct dialog pinentry_t pinentry; }; typedef struct dialog *dialog_t; + +/* Flag to remember whether a warning has been printed. */ +static int lc_ctype_unknown_warning; + +static char * +pinentry_utf8_to_local (const char *lc_ctype, const char *text) +{ + iconv_t cd; + const char *input = text; + size_t input_len = strlen (text) + 1; + char *output; + size_t output_len; + char *output_buf; + size_t processed; + char *old_ctype; + char *target_encoding; + const char *pgmname = pinentry_get_pgmname (); + + /* If no locale setting could be determined, simply copy the + string. */ + if (!lc_ctype) + { + if (! lc_ctype_unknown_warning) + { + fprintf (stderr, "%s: no LC_CTYPE known - assuming UTF-8\n", + pgmname); + lc_ctype_unknown_warning = 1; + } + return strdup (text); + } + + old_ctype = strdup (setlocale (LC_CTYPE, NULL)); + if (!old_ctype) + return NULL; + setlocale (LC_CTYPE, lc_ctype); + target_encoding = nl_langinfo (CODESET); + if (!target_encoding) + target_encoding = "?"; + setlocale (LC_CTYPE, old_ctype); + free (old_ctype); + + /* This is overkill, but simplifies the iconv invocation greatly. */ + output_len = input_len * MB_LEN_MAX; + output_buf = output = malloc (output_len); + if (!output) + return NULL; + cd = iconv_open (target_encoding, "UTF-8"); + if (cd == (iconv_t) -1) + { + fprintf (stderr, "%s: can't convert from UTF-8 to %s: %s\n", + pgmname, target_encoding, strerror (errno)); + free (output_buf); + return NULL; + } + processed = iconv (cd, (ICONV_CONST char **)&input, &input_len, + &output, &output_len); + iconv_close (cd); + if (processed == (size_t) -1 || input_len) + { + fprintf (stderr, "%s: error converting from UTF-8 to %s: %s\n", + pgmname, target_encoding, strerror (errno)); + free (output_buf); + return NULL; + } + return output_buf; +} + +/* Convert TEXT which is encoded according to LC_CTYPE to UTF-8. With + SECURE set to true, use secure memory for the returned buffer. + Return NULL on error. */ +static char * +pinentry_local_to_utf8 (char *lc_ctype, char *text, int secure) +{ + char *old_ctype; + char *source_encoding; + iconv_t cd; + const char *input = text; + size_t input_len = strlen (text) + 1; + char *output; + size_t output_len; + char *output_buf; + size_t processed; + const char *pgmname = pinentry_get_pgmname (); + + /* If no locale setting could be determined, simply copy the + string. */ + if (!lc_ctype) + { + if (! lc_ctype_unknown_warning) + { + fprintf (stderr, "%s: no LC_CTYPE known - assuming UTF-8\n", + pgmname); + lc_ctype_unknown_warning = 1; + } + output_buf = secure? secmem_malloc (input_len) : malloc (input_len); + if (output_buf) + strcpy (output_buf, input); + return output_buf; + } + + old_ctype = strdup (setlocale (LC_CTYPE, NULL)); + if (!old_ctype) + return NULL; + setlocale (LC_CTYPE, lc_ctype); + source_encoding = nl_langinfo (CODESET); + setlocale (LC_CTYPE, old_ctype); + free (old_ctype); + + /* This is overkill, but simplifies the iconv invocation greatly. */ + output_len = input_len * MB_LEN_MAX; + output_buf = output = secure? secmem_malloc (output_len):malloc (output_len); + if (!output) + return NULL; + + cd = iconv_open ("UTF-8", source_encoding); + if (cd == (iconv_t) -1) + { + fprintf (stderr, "%s: can't convert from %s to UTF-8: %s\n", + pgmname, source_encoding? source_encoding : "?", + strerror (errno)); + if (secure) + secmem_free (output_buf); + else + free (output_buf); + return NULL; + } + processed = iconv (cd, (ICONV_CONST char **)&input, &input_len, + &output, &output_len); + iconv_close (cd); + if (processed == (size_t) -1 || input_len) + { + fprintf (stderr, "%s: error converting from %s to UTF-8: %s\n", + pgmname, source_encoding? source_encoding : "?", + strerror (errno)); + if (secure) + secmem_free (output_buf); + else + free (output_buf); + return NULL; + } + return output_buf; +} #ifdef HAVE_NCURSESW typedef wchar_t CH; #define STRLEN(x) wcslen (x) +#define STRWIDTH(x) wcswidth (x, wcslen (x)) #define ADDCH(x) addnwstr (&x, 1); #define CHWIDTH(x) wcwidth (x) #define NULLCH L'\0' @@ -121,6 +288,7 @@ typedef wchar_t CH; #else typedef char CH; #define STRLEN(x) strlen (x) +#define STRWIDTH(x) strlen (x) #define ADDCH(x) addch ((unsigned char) x) #define CHWIDTH(x) 1 #define NULLCH '\0' @@ -128,13 +296,14 @@ typedef char CH; #define SPCH ' ' #endif -/* Return the next line up to MAXLEN columns wide in START and LEN. +/* Return the next line up to MAXWIDTH columns wide in START and LEN. + Return value is the width needed for the line. The first invocation should have 0 as *LEN. If the line ends with a \n, it is a normal line that will be continued. If it is a '\0' the end of the text is reached after this line. In all other cases there is a forced line break. A full line is returned and will be continued in the next line. */ -static void +static int collect_line (int maxwidth, CH **start_p, int *len_p) { int last_space = 0; @@ -153,11 +322,11 @@ collect_line (int maxwidth, CH **start_p, int *len_p) while (width < maxwidth - 1 && *end != NULLCH && *end != NLCH) { - len++; - end++; if (*end == SPCH) last_space = len; width += CHWIDTH (*end); + len++; + end++; } if (*end != NULLCH && *end != NLCH && last_space != 0) @@ -169,6 +338,7 @@ collect_line (int maxwidth, CH **start_p, int *len_p) (*start_p)[len] = NLCH; } *len_p = len + 1; + return width; } #ifdef HAVE_NCURSESW @@ -309,6 +479,7 @@ dialog_create (pinentry_t pinentry, dialog_t dialog) } \ dialog->which = pinentry_utf8_to_local (pinentry->lc_ctype, \ new ? new : default); \ + free (new); \ if (!dialog->which) \ { \ err = 1; \ @@ -340,9 +511,10 @@ dialog_create (pinentry_t pinentry, dialog_t dialog) do { - collect_line (size_x - 4, &start, &len); - if (len > description_x) - description_x = len; + int width = collect_line (size_x - 4, &start, &len); + + if (width > description_x) + description_x = width; y++; } while (start[len - 1]); @@ -412,7 +584,7 @@ dialog_create (pinentry_t pinentry, dialog_t dialog) new_x = MIN_PINENTRY_LENGTH; if (prompt) { - new_x += STRLEN (prompt) + 1; /* One space after prompt. */ + new_x += STRWIDTH (prompt) + 1; /* One space after prompt. */ } if (new_x > size_x - 4) new_x = size_x - 4; @@ -541,11 +713,12 @@ dialog_create (pinentry_t pinentry, dialog_t dialog) if (prompt) { CH *p = prompt; - i = STRLEN (prompt); + i = STRWIDTH (prompt); if (i > x - 4 - MIN_PINENTRY_LENGTH) i = x - 4 - MIN_PINENTRY_LENGTH; dialog->pin_x += i + 1; dialog->pin_size -= i + 1; + i = STRLEN (prompt); while (i-- > 0) { ADDCH (*(p++)); @@ -596,6 +769,9 @@ dialog_create (pinentry_t pinentry, dialog_t dialog) addstr (dialog->ok); } + dialog->got_input = 0; + dialog->no_echo = 0; + out: if (description) free (description); @@ -730,6 +906,12 @@ dialog_input (dialog_t diag, int alt, int chr) diag->pin_loc = diag->pin_len; } } + else if (!diag->got_input) + { + diag->no_echo = 1; + move (diag->pin_y, diag->pin_x); + addstr ("[no echo]"); + } break; case 'l' - 'a' + 1: /* control-l */ @@ -801,19 +983,24 @@ dialog_input (dialog_t diag, int alt, int chr) break; } - if (old_loc < diag->pin_loc) - { - move (diag->pin_y, diag->pin_x + old_loc); - while (old_loc++ < diag->pin_loc) - addch ('*'); - } - else if (old_loc > diag->pin_loc) + diag->got_input = 1; + + if (!diag->no_echo) { + if (old_loc < diag->pin_loc) + { + move (diag->pin_y, diag->pin_x + old_loc); + while (old_loc++ < diag->pin_loc) + addch ('*'); + } + else if (old_loc > diag->pin_loc) + { + move (diag->pin_y, diag->pin_x + diag->pin_loc); + while (old_loc-- > diag->pin_loc) + addch ('_'); + } move (diag->pin_y, diag->pin_x + diag->pin_loc); - while (old_loc-- > diag->pin_loc) - addch ('_'); } - move (diag->pin_y, diag->pin_x + diag->pin_loc); } static int @@ -851,6 +1038,9 @@ dialog_run (pinentry_t pinentry, const char *tty_name, const char *tty_type) { pinentry->specific_err = gpg_error_from_syserror (); pinentry->specific_err_loc = "open_tty_for_read"; +#ifdef HAVE_NCURSESW + free (old_ctype); +#endif return confirm_mode? 0 : -1; } ttyfo = fopen (tty_name, "w"); @@ -861,9 +1051,23 @@ dialog_run (pinentry_t pinentry, const char *tty_name, const char *tty_type) errno = err; pinentry->specific_err = gpg_error_from_syserror (); pinentry->specific_err_loc = "open_tty_for_write"; +#ifdef HAVE_NCURSESW + free (old_ctype); +#endif return confirm_mode? 0 : -1; } screen = newterm (tty_type, ttyfo, ttyfi); + if (!screen) + { + pinentry->specific_err = gpg_error (GPG_ERR_WINDOW_TOO_SMALL); + pinentry->specific_err_loc = "curses_init"; + fclose (ttyfo); + fclose (ttyfi); +#ifdef HAVE_NCURSESW + free (old_ctype); +#endif + return confirm_mode? 0 : -1; + } set_term (screen); } else @@ -875,6 +1079,9 @@ dialog_run (pinentry_t pinentry, const char *tty_name, const char *tty_type) errno = ENOTTY; pinentry->specific_err = gpg_error_from_syserror (); pinentry->specific_err_loc = "isatty"; +#ifdef HAVE_NCURSESW + free (old_ctype); +#endif return confirm_mode? 0 : -1; } init_screen = 1; @@ -900,8 +1107,17 @@ dialog_run (pinentry_t pinentry, const char *tty_name, const char *tty_type) if (has_colors ()) { start_color (); + + /* Ncurses has use_default_colors, an extentions to the curses + library, which allows use of -1 to select default color. */ #ifdef NCURSES_VERSION use_default_colors (); +#else + /* With no extention, we need to specify color explicitly. */ + if (pinentry->color_fg == PINENTRY_COLOR_DEFAULT) + pinentry->color_fg = PINENTRY_COLOR_WHITE; + if (pinentry->color_bg == PINENTRY_COLOR_DEFAULT) + pinentry->color_bg = PINENTRY_COLOR_BLACK; #endif if (pinentry->color_so == PINENTRY_COLOR_DEFAULT) @@ -1188,7 +1404,7 @@ curses_cmd_handler (pinentry_t pinentry) } #endif - rc = dialog_run (pinentry, pinentry->ttyname, pinentry->ttytype); + rc = dialog_run (pinentry, pinentry->ttyname, pinentry->ttytype_l); do_touch_file (pinentry); return rc; } diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/pinentry/pinentry-curses.h b/debian/pinentry-tqt/pinentry-tqt-1.2.1/pinentry/pinentry-curses.h similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/pinentry/pinentry-curses.h rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/pinentry/pinentry-curses.h diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/pinentry/pinentry-emacs.c b/debian/pinentry-tqt/pinentry-tqt-1.2.1/pinentry/pinentry-emacs.c similarity index 97% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/pinentry/pinentry-emacs.c rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/pinentry/pinentry-emacs.c index 190ea9dc..9685b67d 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/pinentry/pinentry-emacs.c +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/pinentry/pinentry-emacs.c @@ -498,7 +498,7 @@ set_labels (pinentry_t pe) set_label (pe, "SETOK", pe->default_ok); if (pe->cancel) set_label (pe, "SETCANCEL", pe->cancel); - else if (pe->default_ok) + else if (pe->default_cancel) set_label (pe, "SETCANCEL", pe->default_cancel); if (pe->notok) set_label (pe, "SETNOTOK", pe->notok); @@ -680,6 +680,22 @@ pinentry_enable_emacs_cmd_handler (void) pinentry_cmd_handler = initial_emacs_cmd_handler; } + +/* Returns true if the Emacs pinentry is enabled. The value is 1 + * before the first connection with Emacs has been done and 2 if the + * connection to Emacs has been establish. Returns false if the Emacs + * pinentry is not enabled. */ +int +pinentry_emacs_status (void) +{ + if (pinentry_cmd_handler == initial_emacs_cmd_handler) + return 1; + else if (pinentry_cmd_handler == emacs_cmd_handler) + return 2; + else + return 0; +} + int pinentry_emacs_init (void) { diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/pinentry/pinentry-emacs.h b/debian/pinentry-tqt/pinentry-tqt-1.2.1/pinentry/pinentry-emacs.h similarity index 93% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/pinentry/pinentry-emacs.h rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/pinentry/pinentry-emacs.h index 00b44131..b05d53bc 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/pinentry/pinentry-emacs.h +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/pinentry/pinentry-emacs.h @@ -32,6 +32,9 @@ extern "C" { receiving an Assuan request "OPTION allow-emacs-prompt". */ void pinentry_enable_emacs_cmd_handler (void); +/* Return info on whether emacs support is enabled. */ +int pinentry_emacs_status (void); + /* Initialize the Emacs interface, return true if success. */ int pinentry_emacs_init (void); diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/pinentry/pinentry.c b/debian/pinentry-tqt/pinentry-tqt-1.2.1/pinentry/pinentry.c similarity index 82% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/pinentry/pinentry.c rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/pinentry/pinentry.c index 30c333b4..ea11b67f 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/pinentry/pinentry.c +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/pinentry/pinentry.c @@ -1,5 +1,5 @@ /* pinentry.c - The PIN entry support library - * Copyright (C) 2002, 2003, 2007, 2008, 2010, 2015, 2016 g10 Code GmbH + * Copyright (C) 2002, 2003, 2007, 2008, 2010, 2015, 2016, 2021 g10 Code GmbH * * This file is part of PINENTRY. * @@ -27,6 +27,8 @@ #endif #include #include +#include +#include #include #include #ifndef HAVE_W32_SYSTEM @@ -35,20 +37,11 @@ #ifndef HAVE_W32CE_SYSTEM # include #endif -#ifdef HAVE_LANGINFO_H -#include -#endif #include #ifdef HAVE_W32CE_SYSTEM # include #endif -#undef WITH_UTF8_CONVERSION -#if defined FALLBACK_CURSES || defined PINENTRY_CURSES || defined PINENTRY_GTK -# include -# define WITH_UTF8_CONVERSION 1 -#endif - #include #include "memory.h" @@ -79,17 +72,11 @@ static const char *flavor_flag; /* Because gtk_init removes the --display arg from the command lines * and our command line parser is called after gtk_init (so that it * does not see gtk specific options) we don't have a way to get hold - * of the --display option. Our solution is to remember --disable in + * of the --display option. Our solution is to remember --display in * the call to pinentry_have_display and set it then in our * parser. */ static char *remember_display; -/* Flag to remember whether a warning has been printed. */ -#ifdef WITH_UTF8_CONVERSION -static int lc_ctype_unknown_warning; -#endif - - static void pinentry_reset (int use_defaults) { @@ -97,7 +84,7 @@ pinentry_reset (int use_defaults) Don't reset them. */ int grab = pinentry.grab; char *ttyname = pinentry.ttyname; - char *ttytype = pinentry.ttytype; + char *ttytype = pinentry.ttytype_l; char *ttyalert = pinentry.ttyalert; char *lc_ctype = pinentry.lc_ctype; char *lc_messages = pinentry.lc_messages; @@ -109,10 +96,15 @@ pinentry_reset (int use_defaults) char *default_cf_visi = pinentry.default_cf_visi; char *default_tt_visi = pinentry.default_tt_visi; char *default_tt_hide = pinentry.default_tt_hide; + char *default_capshint = pinentry.default_capshint; char *touch_file = pinentry.touch_file; unsigned long owner_pid = pinentry.owner_pid; int owner_uid = pinentry.owner_uid; char *owner_host = pinentry.owner_host; + int constraints_enforce = pinentry.constraints_enforce; + char *constraints_hint_short = pinentry.constraints_hint_short; + char *constraints_hint_long = pinentry.constraints_hint_long; + char *constraints_error_title = pinentry.constraints_error_title; /* These options are set from the command line. Don't reset them. */ @@ -135,7 +127,7 @@ pinentry_reset (int use_defaults) if (use_defaults) { free (pinentry.ttyname); - free (pinentry.ttytype); + free (pinentry.ttytype_l); free (pinentry.ttyalert); free (pinentry.lc_ctype); free (pinentry.lc_messages); @@ -146,9 +138,13 @@ pinentry_reset (int use_defaults) free (pinentry.default_cf_visi); free (pinentry.default_tt_visi); free (pinentry.default_tt_hide); + free (pinentry.default_capshint); free (pinentry.touch_file); free (pinentry.owner_host); free (pinentry.display); + free (pinentry.constraints_hint_short); + free (pinentry.constraints_hint_long); + free (pinentry.constraints_error_title); } free (pinentry.title); @@ -163,6 +159,7 @@ pinentry_reset (int use_defaults) free (pinentry.repeat_error_string); free (pinentry.quality_bar); free (pinentry.quality_bar_tt); + free (pinentry.formatted_passphrase_hint); free (pinentry.keyinfo); free (pinentry.specific_err_info); @@ -194,7 +191,7 @@ pinentry_reset (int use_defaults) { pinentry.grab = grab; pinentry.ttyname = ttyname; - pinentry.ttytype = ttytype; + pinentry.ttytype_l = ttytype; pinentry.ttyalert = ttyalert; pinentry.lc_ctype = lc_ctype; pinentry.lc_messages = lc_messages; @@ -206,10 +203,15 @@ pinentry_reset (int use_defaults) pinentry.default_cf_visi = default_cf_visi; pinentry.default_tt_visi = default_tt_visi; pinentry.default_tt_hide = default_tt_hide; + pinentry.default_capshint = default_capshint; pinentry.touch_file = touch_file; pinentry.owner_pid = owner_pid; pinentry.owner_uid = owner_uid; pinentry.owner_host = owner_host; + pinentry.constraints_enforce = constraints_enforce; + pinentry.constraints_hint_short = constraints_hint_short; + pinentry.constraints_hint_long = constraints_hint_long; + pinentry.constraints_error_title = constraints_error_title; pinentry.debug = debug; pinentry.display = display; @@ -238,150 +240,6 @@ pinentry_assuan_reset_handler (assuan_context_t ctx, char *line) -#ifdef WITH_UTF8_CONVERSION -char * -pinentry_utf8_to_local (const char *lc_ctype, const char *text) -{ - iconv_t cd; - const char *input = text; - size_t input_len = strlen (text) + 1; - char *output; - size_t output_len; - char *output_buf; - size_t processed; - char *old_ctype; - char *target_encoding; - - /* If no locale setting could be determined, simply copy the - string. */ - if (!lc_ctype) - { - if (! lc_ctype_unknown_warning) - { - fprintf (stderr, "%s: no LC_CTYPE known - assuming UTF-8\n", - this_pgmname); - lc_ctype_unknown_warning = 1; - } - return strdup (text); - } - - old_ctype = strdup (setlocale (LC_CTYPE, NULL)); - if (!old_ctype) - return NULL; - setlocale (LC_CTYPE, lc_ctype); - target_encoding = nl_langinfo (CODESET); - if (!target_encoding) - target_encoding = "?"; - setlocale (LC_CTYPE, old_ctype); - free (old_ctype); - - /* This is overkill, but simplifies the iconv invocation greatly. */ - output_len = input_len * MB_LEN_MAX; - output_buf = output = malloc (output_len); - if (!output) - return NULL; - - cd = iconv_open (target_encoding, "UTF-8"); - if (cd == (iconv_t) -1) - { - fprintf (stderr, "%s: can't convert from UTF-8 to %s: %s\n", - this_pgmname, target_encoding, strerror (errno)); - free (output_buf); - return NULL; - } - processed = iconv (cd, (ICONV_CONST char **)&input, &input_len, - &output, &output_len); - iconv_close (cd); - if (processed == (size_t) -1 || input_len) - { - fprintf (stderr, "%s: error converting from UTF-8 to %s: %s\n", - this_pgmname, target_encoding, strerror (errno)); - free (output_buf); - return NULL; - } - return output_buf; -} -#endif /*WITH_UTF8_CONVERSION*/ - - -/* Convert TEXT which is encoded according to LC_CTYPE to UTF-8. With - SECURE set to true, use secure memory for the returned buffer. - Return NULL on error. */ -#ifdef WITH_UTF8_CONVERSION -char * -pinentry_local_to_utf8 (char *lc_ctype, char *text, int secure) -{ - char *old_ctype; - char *source_encoding; - iconv_t cd; - const char *input = text; - size_t input_len = strlen (text) + 1; - char *output; - size_t output_len; - char *output_buf; - size_t processed; - - /* If no locale setting could be determined, simply copy the - string. */ - if (!lc_ctype) - { - if (! lc_ctype_unknown_warning) - { - fprintf (stderr, "%s: no LC_CTYPE known - assuming UTF-8\n", - this_pgmname); - lc_ctype_unknown_warning = 1; - } - output_buf = secure? secmem_malloc (input_len) : malloc (input_len); - if (output_buf) - strcpy (output_buf, input); - return output_buf; - } - - old_ctype = strdup (setlocale (LC_CTYPE, NULL)); - if (!old_ctype) - return NULL; - setlocale (LC_CTYPE, lc_ctype); - source_encoding = nl_langinfo (CODESET); - setlocale (LC_CTYPE, old_ctype); - free (old_ctype); - - /* This is overkill, but simplifies the iconv invocation greatly. */ - output_len = input_len * MB_LEN_MAX; - output_buf = output = secure? secmem_malloc (output_len):malloc (output_len); - if (!output) - return NULL; - - cd = iconv_open ("UTF-8", source_encoding); - if (cd == (iconv_t) -1) - { - fprintf (stderr, "%s: can't convert from %s to UTF-8: %s\n", - this_pgmname, source_encoding? source_encoding : "?", - strerror (errno)); - if (secure) - secmem_free (output_buf); - else - free (output_buf); - return NULL; - } - processed = iconv (cd, (ICONV_CONST char **)&input, &input_len, - &output, &output_len); - iconv_close (cd); - if (processed == (size_t) -1 || input_len) - { - fprintf (stderr, "%s: error converting from %s to UTF-8: %s\n", - this_pgmname, source_encoding? source_encoding : "?", - strerror (errno)); - if (secure) - secmem_free (output_buf); - else - free (output_buf); - return NULL; - } - return output_buf; -} -#endif /*WITH_UTF8_CONVERSION*/ - - /* Copy TEXT or TEXTLEN to BUFFER and escape as required. Return a pointer to the end of the new buffer. Note that BUFFER must be large enough to keep the entire text; allocataing it 3 times of @@ -409,6 +267,32 @@ copy_and_escape (char *buffer, const void *text, size_t textlen) } +/* Perform percent unescaping in STRING and return the new valid length + of the string. A terminating Nul character is inserted at the end of + the unescaped string. + */ +static size_t +do_unescape_inplace (char *s) +{ + unsigned char *p, *p0; + + p = p0 = s; + while (*s) + { + if (*s == '%' && s[1] && s[2]) + { + s++; + *p++ = xtoi_2 (s); + s += 2; + } + else + *p++ = *s++; + } + *p = 0; + + return (p - p0); +} + /* Return a malloced copy of the commandline for PID. If this is not * possible NULL is returned. */ @@ -421,7 +305,6 @@ get_cmdline (unsigned long pid) size_t i, n; snprintf (buffer, sizeof buffer, "/proc/%lu/cmdline", pid); - buffer[sizeof buffer - 1] = 0; fp = fopen (buffer, "rb"); if (!fp) @@ -467,7 +350,6 @@ get_pid_name_for_uid (unsigned long pid, int uid) char *uidstr; snprintf (buffer, sizeof buffer, "/proc/%lu/status", pid); - buffer[sizeof buffer - 1] = 0; fp = fopen (buffer, "rb"); if (!fp) @@ -482,6 +364,7 @@ get_pid_name_for_uid (unsigned long pid, int uid) fclose (fp); if (n == 0) return NULL; + buffer[n] = 0; /* Fixme: Is it specified that "Name" is always the first line? For * robustness I would prefer to have a real parser here. -wk */ if (strncmp (buffer, "Name:\t", 6)) @@ -501,6 +384,13 @@ get_pid_name_for_uid (unsigned long pid, int uid) #endif /*!HAVE_W32_SYSTEM*/ +const char * +pinentry_get_pgmname (void) +{ + return this_pgmname; +} + + /* Return a malloced string with the title. The caller mus free the * string. If no title is available or the title string has an error * NULL is returned. */ @@ -520,7 +410,7 @@ pinentry_get_title (pinentry_t pe) char *cmdline = NULL; if (pe->owner_host && - !uname (&utsbuf) && utsbuf.nodename && + !uname (&utsbuf) && !strcmp (utsbuf.nodename, pe->owner_host)) { pidname = get_pid_name_for_uid (pe->owner_pid, pe->owner_uid); @@ -537,7 +427,6 @@ pinentry_get_title (pinentry_t pe) else snprintf (buf, sizeof buf, "[%lu] ", pe->owner_pid); - buf[sizeof buf - 1] = 0; free (pidname); free (cmdline); title = strdup (buf); @@ -625,6 +514,122 @@ pinentry_inq_quality (pinentry_t pin, const char *passphrase, size_t length) } +/* Run a checkpin inquiry */ +char * +pinentry_inq_checkpin (pinentry_t pin, const char *passphrase, size_t length) +{ + assuan_context_t ctx = pin->ctx_assuan; + const char prefix[] = "INQUIRE CHECKPIN "; + char *command; + char *line; + size_t linelen; + int gotvalue = 0; + char *value = NULL; + int rc; + + if (!ctx) + return 0; /* Can't run the callback. */ + + if (length > 300) + length = 300; /* Limit so that it definitely fits into an Assuan + line. */ + + command = secmem_malloc (strlen (prefix) + 3*length + 1); + if (!command) + return 0; + strcpy (command, prefix); + copy_and_escape (command + strlen(command), passphrase, length); + rc = assuan_write_line (ctx, command); + secmem_free (command); + if (rc) + { + fprintf (stderr, "ASSUAN WRITE LINE failed: rc=%d\n", rc); + return 0; + } + + for (;;) + { + do + { + rc = assuan_read_line (ctx, &line, &linelen); + if (rc) + { + fprintf (stderr, "ASSUAN READ LINE failed: rc=%d\n", rc); + return 0; + } + } + while (*line == '#' || !linelen); + if (line[0] == 'E' && line[1] == 'N' && line[2] == 'D' + && (!line[3] || line[3] == ' ')) + break; /* END command received*/ + if (line[0] == 'C' && line[1] == 'A' && line[2] == 'N' + && (!line[3] || line[3] == ' ')) + break; /* CAN command received*/ + if (line[0] == 'E' && line[1] == 'R' && line[2] == 'R' + && (!line[3] || line[3] == ' ')) + break; /* ERR command received*/ + if (line[0] != 'D' || line[1] != ' ' || linelen < 3 || gotvalue) + continue; + gotvalue = 1; + value = strdup (line + 2); + } + + return value; +} + + +/* Run a genpin inquiry */ +char * +pinentry_inq_genpin (pinentry_t pin) +{ + assuan_context_t ctx = pin->ctx_assuan; + const char prefix[] = "INQUIRE GENPIN"; + char *line; + size_t linelen; + int gotvalue = 0; + char *value = NULL; + int rc; + + if (!ctx) + return 0; /* Can't run the callback. */ + + rc = assuan_write_line (ctx, prefix); + if (rc) + { + fprintf (stderr, "ASSUAN WRITE LINE failed: rc=%d\n", rc); + return 0; + } + + for (;;) + { + do + { + rc = assuan_read_line (ctx, &line, &linelen); + if (rc) + { + fprintf (stderr, "ASSUAN READ LINE failed: rc=%d\n", rc); + free (value); + return 0; + } + } + while (*line == '#' || !linelen); + if (line[0] == 'E' && line[1] == 'N' && line[2] == 'D' + && (!line[3] || line[3] == ' ')) + break; /* END command received*/ + if (line[0] == 'C' && line[1] == 'A' && line[2] == 'N' + && (!line[3] || line[3] == ' ')) + break; /* CAN command received*/ + if (line[0] == 'E' && line[1] == 'R' && line[2] == 'R' + && (!line[3] || line[3] == ' ')) + break; /* ERR command received*/ + if (line[0] != 'D' || line[1] != ' ' || linelen < 3 || gotvalue) + continue; + gotvalue = 1; + value = strdup (line + 2); + } + + return value; +} /* Try to make room for at least LEN bytes in the pinentry. Returns new buffer on success and 0 on failure or when the old buffer is @@ -819,7 +824,6 @@ my_strusage( int level ) { snprintf (str, n, "Usage: %s [options] (-h for help)", this_pgmname); - str[n-1] = 0; } } p = str; @@ -950,8 +954,8 @@ pinentry_parse_opts (int argc, char *argv[]) } break; case 'N': - pinentry.ttytype = strdup (pargs.r.ret_str); - if (!pinentry.ttytype) + pinentry.ttytype_l = strdup (pargs.r.ret_str); + if (!pinentry.ttytype_l) { #ifndef HAVE_W32CE_SYSTEM fprintf (stderr, "%s: %s\n", this_pgmname, strerror (errno)); @@ -1070,10 +1074,10 @@ option_handler (assuan_context_t ctx, const char *key, const char *value) } else if (!strcmp (key, "ttytype")) { - if (pinentry.ttytype) - free (pinentry.ttytype); - pinentry.ttytype = strdup (value); - if (!pinentry.ttytype) + if (pinentry.ttytype_l) + free (pinentry.ttytype_l); + pinentry.ttytype_l = strdup (value); + if (!pinentry.ttytype_l) return gpg_error_from_syserror (); } else if (!strcmp (key, "ttyalert")) @@ -1195,6 +1199,12 @@ option_handler (assuan_context_t ctx, const char *key, const char *value) if (!pinentry.default_tt_hide) return gpg_error_from_syserror (); } + else if (!strcmp (key, "default-capshint")) + { + pinentry.default_capshint = strdup (value); + if (!pinentry.default_capshint) + return gpg_error_from_syserror (); + } else if (!strcmp (key, "allow-external-password-cache") && !*value) { pinentry.allow_external_password_cache = 1; @@ -1214,6 +1224,48 @@ option_handler (assuan_context_t ctx, const char *key, const char *value) if (!pinentry.invisible_char) return gpg_error_from_syserror (); } + else if (!strcmp (key, "formatted-passphrase") && !*value) + { + pinentry.formatted_passphrase = 1; + } + else if (!strcmp (key, "formatted-passphrase-hint")) + { + if (pinentry.formatted_passphrase_hint) + free (pinentry.formatted_passphrase_hint); + pinentry.formatted_passphrase_hint = strdup (value); + if (!pinentry.formatted_passphrase_hint) + return gpg_error_from_syserror (); + do_unescape_inplace(pinentry.formatted_passphrase_hint); + } + else if (!strcmp (key, "constraints-enforce") && !*value) + pinentry.constraints_enforce = 1; + else if (!strcmp (key, "constraints-hint-short")) + { + if (pinentry.constraints_hint_short) + free (pinentry.constraints_hint_short); + pinentry.constraints_hint_short = strdup (value); + if (!pinentry.constraints_hint_short) + return gpg_error_from_syserror (); + do_unescape_inplace(pinentry.constraints_hint_short); + } + else if (!strcmp (key, "constraints-hint-long")) + { + if (pinentry.constraints_hint_long) + free (pinentry.constraints_hint_long); + pinentry.constraints_hint_long = strdup (value); + if (!pinentry.constraints_hint_long) + return gpg_error_from_syserror (); + do_unescape_inplace(pinentry.constraints_hint_long); + } + else if (!strcmp (key, "constraints-error-title")) + { + if (pinentry.constraints_error_title) + free (pinentry.constraints_error_title); + pinentry.constraints_error_title = strdup (value); + if (!pinentry.constraints_error_title) + return gpg_error_from_syserror (); + do_unescape_inplace(pinentry.constraints_error_title); + } else return gpg_error (GPG_ERR_UNKNOWN_OPTION); return 0; @@ -1257,7 +1309,6 @@ write_status_error (assuan_context_t ctx, pinentry_t pe) pe->specific_err_loc? pe->specific_err_loc : "?", pe->specific_err, pe->specific_err_info? pe->specific_err_info : ""); - buf[sizeof buf -1] = 0; assuan_write_status (ctx, "ERROR", buf); } @@ -1507,6 +1558,53 @@ cmd_setqualitybar_tt (assuan_context_t ctx, char *line) return 0; } +/* Set the tooltip to be used for a generate action. */ +static gpg_error_t +cmd_setgenpin_tt (assuan_context_t ctx, char *line) +{ + char *newval; + + (void)ctx; + + if (*line) + { + newval = malloc (strlen (line) + 1); + if (!newval) + return gpg_error_from_syserror (); + + strcpy_escaped (newval, line); + } + else + newval = NULL; + if (pinentry.genpin_tt) + free (pinentry.genpin_tt); + pinentry.genpin_tt = newval; + return 0; +} + +/* Set the label to be used for a generate action. */ +static gpg_error_t +cmd_setgenpin_label (assuan_context_t ctx, char *line) +{ + char *newval; + + (void)ctx; + + if (*line) + { + newval = malloc (strlen (line) + 1); + if (!newval) + return gpg_error_from_syserror (); + + strcpy_escaped (newval, line); + } + else + newval = NULL; + if (pinentry.genpin_label) + free (pinentry.genpin_label); + pinentry.genpin_label = newval; + return 0; +} static gpg_error_t cmd_getpin (assuan_context_t ctx, char *line) @@ -1613,6 +1711,10 @@ cmd_getpin (assuan_context_t ctx, char *line) if (pinentry.specific_err) { write_status_error (ctx, &pinentry); + + if (gpg_err_code (pinentry.specific_err) == GPG_ERR_FULLY_CANCELED) + assuan_set_flag (ctx, ASSUAN_FORCE_CLOSE, 1); + return pinentry.specific_err; } return (pinentry.locale_err @@ -1625,9 +1727,11 @@ cmd_getpin (assuan_context_t ctx, char *line) { if (pinentry.repeat_okay) assuan_write_status (ctx, "PIN_REPEATED", ""); + assuan_begin_confidential (ctx); result = assuan_send_data (ctx, pinentry.pin, strlen(pinentry.pin)); if (!result) result = assuan_send_data (ctx, NULL, 0); + assuan_end_confidential (ctx); if (/* GPG Agent says it's okay. */ pinentry.allow_external_password_cache && pinentry.keyinfo @@ -1683,6 +1787,10 @@ cmd_confirm (assuan_context_t ctx, char *line) if (pinentry.specific_err) { write_status_error (ctx, &pinentry); + + if (gpg_err_code (pinentry.specific_err) == GPG_ERR_FULLY_CANCELED) + assuan_set_flag (ctx, ASSUAN_FORCE_CLOSE, 1); + return pinentry.specific_err; } @@ -1706,6 +1814,33 @@ cmd_message (assuan_context_t ctx, char *line) return cmd_confirm (ctx, "--one-button"); } + +/* Return a staically allocated string with information on the mode, + * uid, and gid of DEVICE. On error "?" is returned if DEVICE is + * NULL, "-" is returned. */ +static const char * +device_stat_string (const char *device) +{ +#ifdef HAVE_STAT + static char buf[40]; + struct stat st; + + if (!device || !*device) + return "-"; + + if (stat (device, &st)) + return "?"; /* Error */ + snprintf (buf, sizeof buf, "%lo/%lu/%lu", + (unsigned long)st.st_mode, + (unsigned long)st.st_uid, + (unsigned long)st.st_gid); + return buf; +#else + return "-"; +#endif +} + + /* GETINFO Multipurpose function to return a variety of information. @@ -1714,14 +1849,14 @@ cmd_message (assuan_context_t ctx, char *line) version - Return the version of the program. pid - Return the process id of the server. flavor - Return information about the used pinentry flavor - ttyinfo - Return DISPLAY and ttyinfo. + ttyinfo - Return DISPLAY, ttyinfo and an emacs pinentry status */ static gpg_error_t cmd_getinfo (assuan_context_t ctx, char *line) { int rc; const char *s; - char buffer[100]; + char buffer[150]; if (!strcmp (line, "version")) { @@ -1732,7 +1867,6 @@ cmd_getinfo (assuan_context_t ctx, char *line) { snprintf (buffer, sizeof buffer, "%lu", (unsigned long)getpid ()); - buffer[sizeof buffer -1] = 0; rc = assuan_send_data (ctx, buffer, strlen (buffer)); } else if (!strcmp (line, "flavor")) @@ -1746,18 +1880,31 @@ cmd_getinfo (assuan_context_t ctx, char *line) s, flavor_flag? ":":"", flavor_flag? flavor_flag : ""); - buffer[sizeof buffer -1] = 0; rc = assuan_send_data (ctx, buffer, strlen (buffer)); /* if (!rc) */ /* rc = assuan_write_status (ctx, "FEATURES", "tabbing foo bar"); */ } else if (!strcmp (line, "ttyinfo")) { - snprintf (buffer, sizeof buffer, "%s %s %s", + char emacs_status[10]; +#ifdef INSIDE_EMACS + snprintf (emacs_status, sizeof emacs_status, + "%d", pinentry_emacs_status ()); +#else + strcpy (emacs_status, "-"); +#endif + snprintf (buffer, sizeof buffer, "%s %s %s %s %lu/%lu %s", pinentry.ttyname? pinentry.ttyname : "-", - pinentry.ttytype? pinentry.ttytype : "-", - pinentry.display? pinentry.display : "-" ); - buffer[sizeof buffer -1] = 0; + pinentry.ttytype_l? pinentry.ttytype_l : "-", + pinentry.display? pinentry.display : "-", + device_stat_string (pinentry.ttyname), +#ifdef HAVE_DOSISH_SYSTEM + 0l, 0l, +#else + (unsigned long)geteuid (), (unsigned long)getegid (), +#endif + emacs_status + ); rc = assuan_send_data (ctx, buffer, strlen (buffer)); } else @@ -1816,6 +1963,8 @@ register_commands (assuan_context_t ctx) { "MESSAGE", cmd_message }, { "SETQUALITYBAR", cmd_setqualitybar }, { "SETQUALITYBAR_TT", cmd_setqualitybar_tt }, + { "SETGENPIN", cmd_setgenpin_label }, + { "SETGENPIN_TT", cmd_setgenpin_tt }, { "GETINFO", cmd_getinfo }, { "SETTITLE", cmd_settitle }, { "SETTIMEOUT", cmd_settimeout }, diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/pinentry/pinentry.h b/debian/pinentry-tqt/pinentry-tqt-1.2.1/pinentry/pinentry.h similarity index 80% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/pinentry/pinentry.h rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/pinentry/pinentry.h index 009e8848..b97f069b 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/pinentry/pinentry.h +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/pinentry/pinentry.h @@ -1,5 +1,5 @@ /* pinentry.h - The interface for the PIN entry support library. - * Copyright (C) 2002, 2003, 2010, 2015 g10 Code GmbH + * Copyright (C) 2002, 2003, 2010, 2015, 2021 g10 Code GmbH * * This file is part of PINENTRY. * @@ -75,7 +75,7 @@ struct pinentry supported. (Assuan: "OPTION ttyname TTYNAME".) */ char *ttyname; /* The type of the terminal. (Assuan: "OPTION ttytype TTYTYPE".) */ - char *ttytype; + char *ttytype_l; /* Set the alert mode (none, beep or flash). */ char *ttyalert; /* The LC_CTYPE value for the terminal. (Assuan: "OPTION lc-ctype @@ -170,10 +170,29 @@ struct pinentry "SETQUALITYBAR LABEL".) */ char *quality_bar; - /* The tooltip to be show for the qualitybar. Malloced or NULL. + /* The tooltip to be shown for the qualitybar. Malloced or NULL. (Assuan: "SETQUALITYBAR_TT TOOLTIP".) */ char *quality_bar_tt; + /* If this is not NULL, a generate action should be shown. + There will be an inquiry back to the caller to get such a + PIN. generate action. Malloced or NULL. + (Assuan: "SETGENPIN LABEL" .) */ + char *genpin_label; + + /* The tooltip to be shown for the generate action. Malloced or NULL. + (Assuan: "SETGENPIN_TT TOOLTIP".) */ + char *genpin_tt; + + /* Specifies whether passphrase formatting should be enabled. + (Assuan: "OPTION formatted-passphrase") */ + int formatted_passphrase; + + /* A hint to be shown near the passphrase input field if passphrase + formatting is enabled. Malloced or NULL. + (Assuan: "OPTION formatted-passphrase-hint=HINT".) */ + char *formatted_passphrase_hint; + /* For the curses pinentry, the color of error messages. */ pinentry_color_t color_fg; int color_fg_bright; @@ -202,6 +221,9 @@ struct pinentry /* (Assuan: "OPTION default-tt-hide Hide passphrase"). */ char *default_tt_hide; + /* (Assuan: "OPTION default-capshint + Caps Lock is on"). */ + char *default_capshint; /* Whether we are allowed to read the password from an external cache. (Assuan: "OPTION allow-external-password-cache") */ @@ -220,8 +242,8 @@ struct pinentry /* NOTE: If you add any additional fields to this structure, be sure to update the initializer in pinentry/pinentry.c!!! */ - /* For the quality indicator we need to do an inquiry. Thus we need - to save the assuan ctx. */ + /* For the quality indicator and genpin we need to do an inquiry. + Thus we need to save the assuan ctx. */ void *ctx_assuan; /* An UTF-8 string with an invisible character used to override the @@ -229,6 +251,26 @@ struct pinentry used. */ char *invisible_char; + /* Whether the passphrase constraints are enforced by gpg-agent. + (Assuan: "OPTION constraints-enforce") */ + int constraints_enforce; + + /* A short translated hint for the user with the constraints for new + passphrases to be displayed near the passphrase input field. + Malloced or NULL. + (Assuan: "OPTION constraints-hint-short=At least 8 characters".) */ + char *constraints_hint_short; + + /* A longer translated hint for the user with the constraints for new + passphrases to be displayed for example as tooltip. Malloced or NULL. + (Assuan: "OPTION constraints-hint-long=The passphrase must ...".) */ + char *constraints_hint_long; + + /* A short translated title for an error dialog informing the user about + unsatisfied passphrase constraints. Malloced or NULL. + (Assuan: "OPTION constraints-error-title=Passphrase Not Allowed".) */ + char *constraints_error_title; + }; typedef struct pinentry *pinentry_t; @@ -253,15 +295,7 @@ int pinentry_loop (void); */ int pinentry_loop2 (int infd, int outfd); - -/* Convert the UTF-8 encoded string TEXT to the encoding given in - LC_CTYPE. Return NULL on error. */ -char *pinentry_utf8_to_local (const char *lc_ctype, const char *text); - -/* Convert TEXT which is encoded according to LC_CTYPE to UTF-8. With - SECURE set to true, use secure memory for the returned buffer. - Return NULL on error. */ -char *pinentry_local_to_utf8 (char *lc_ctype, char *text, int secure); +const char *pinentry_get_pgmname (void); char *pinentry_get_title (pinentry_t pe); @@ -269,6 +303,15 @@ char *pinentry_get_title (pinentry_t pe); int pinentry_inq_quality (pinentry_t pin, const char *passphrase, size_t length); +/* Run a checkpin inquiry for PASSPHRASE of LENGTH. Returns NULL, if the + passphrase satisfies the constraints. Otherwise, returns a malloced error + string. */ +char *pinentry_inq_checkpin (pinentry_t pin, + const char *passphrase, size_t length); + +/* Run a genpin iquriry. Returns a malloced string or NULL */ +char *pinentry_inq_genpin (pinentry_t pin); + /* Try to make room for at least LEN bytes for the pin in the pinentry PIN. Returns new buffer on success and 0 on failure. */ char *pinentry_setbufferlen (pinentry_t pin, int len); diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/Makefile.am b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/Makefile.am new file mode 100644 index 00000000..4b2cec2b --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/Makefile.am @@ -0,0 +1,75 @@ +# Makefile.am +# Copyright (C) 2002 g10 Code GmbH, Klarälvdalens Datakonsult AB +# Copyright (C) 2008, 2015 g10 Code GmbH +# +# This file is part of PINENTRY. +# +# PINENTRY is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# PINENTRY is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# SPDX-License-Identifier: GPL-2.0+ + +## Process this file with automake to produce Makefile.in + +bin_PROGRAMS = pinentry-qt + +EXTRA_DIST = pinentryrc.qrc + +SUBDIRS = icons + + +if FALLBACK_CURSES +ncurses_include = $(NCURSES_INCLUDE) +libcurses = ../pinentry/libpinentry-curses.a $(LIBCURSES) $(LIBICONV) +else +ncurses_include = +libcurses = +endif + + +AM_CPPFLAGS = $(COMMON_CFLAGS) \ + -I$(top_srcdir) -I$(top_srcdir)/secmem \ + $(ncurses_include) -I$(top_srcdir)/pinentry +AM_CXXFLAGS = $(PINENTRY_QT_CFLAGS) +pinentry_qt_LDADD = \ + ../pinentry/libpinentry.a $(top_builddir)/secmem/libsecmem.a \ + $(COMMON_LIBS) $(PINENTRY_QT_LIBS) $(libcurses) +pinentry_qt_LDFLAGS = $(PINENTRY_QT_LDFLAGS) + +if BUILD_PINENTRY_QT +BUILT_SOURCES = \ + pinentryconfirm.moc pinentrydialog.moc pinlineedit.moc capslock.moc \ + pinentryrc.cpp +endif + +CLEANFILES = $(BUILT_SOURCES) + +if HAVE_W32_SYSTEM +pinentry_qt_platform_SOURCES = capslock_win.cpp +else +pinentry_qt_platform_SOURCES = capslock_unix.cpp +endif + +pinentry_qt_SOURCES = pinentrydialog.h pinentrydialog.cpp \ + main.cpp pinentryconfirm.cpp pinentryconfirm.h \ + pinlineedit.h pinlineedit.cpp capslock.cpp capslock.h capslock_p.h \ + pinentry_debug.cpp pinentry_debug.h util.h accessibility.cpp \ + accessibility.h qti18n.cpp pinentryrc.qrc \ + $(pinentry_qt_platform_SOURCES) + +nodist_pinentry_qt_SOURCES = $(BUILT_SOURCES) + +.h.moc: + $(MOC) `test -f '$<' || echo '$(srcdir)/'`$< -o $@ + +pinentryrc.cpp: pinentryrc.qrc + $(RCC) `test -f '$<' || echo '$(srcdir)/'`$< -o $@ diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/Makefile.in b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/Makefile.in new file mode 100644 index 00000000..f3aeeea4 --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/Makefile.in @@ -0,0 +1,902 @@ +# Makefile.in generated by automake 1.16.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2020 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Makefile.am +# Copyright (C) 2002 g10 Code GmbH, Klarälvdalens Datakonsult AB +# Copyright (C) 2008, 2015 g10 Code GmbH +# +# This file is part of PINENTRY. +# +# PINENTRY is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# PINENTRY is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# SPDX-License-Identifier: GPL-2.0+ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +bin_PROGRAMS = pinentry-qt$(EXEEXT) +subdir = qt +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/curses.m4 \ + $(top_srcdir)/m4/gpg-error.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/libassuan.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/qt4.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__installdirs = "$(DESTDIR)$(bindir)" +PROGRAMS = $(bin_PROGRAMS) +am__pinentry_qt_SOURCES_DIST = pinentrydialog.h pinentrydialog.cpp \ + main.cpp pinentryconfirm.cpp pinentryconfirm.h pinlineedit.h \ + pinlineedit.cpp capslock.cpp capslock.h capslock_p.h \ + pinentry_debug.cpp pinentry_debug.h util.h accessibility.cpp \ + accessibility.h qti18n.cpp pinentryrc.qrc capslock_unix.cpp \ + capslock_win.cpp +@HAVE_W32_SYSTEM_FALSE@am__objects_1 = capslock_unix.$(OBJEXT) +@HAVE_W32_SYSTEM_TRUE@am__objects_1 = capslock_win.$(OBJEXT) +am_pinentry_qt_OBJECTS = pinentrydialog.$(OBJEXT) main.$(OBJEXT) \ + pinentryconfirm.$(OBJEXT) pinlineedit.$(OBJEXT) \ + capslock.$(OBJEXT) pinentry_debug.$(OBJEXT) \ + accessibility.$(OBJEXT) qti18n.$(OBJEXT) $(am__objects_1) +@BUILD_PINENTRY_QT_TRUE@am__objects_2 = pinentryrc.$(OBJEXT) +nodist_pinentry_qt_OBJECTS = $(am__objects_2) +pinentry_qt_OBJECTS = $(am_pinentry_qt_OBJECTS) \ + $(nodist_pinentry_qt_OBJECTS) +am__DEPENDENCIES_1 = +@FALLBACK_CURSES_TRUE@am__DEPENDENCIES_2 = \ +@FALLBACK_CURSES_TRUE@ ../pinentry/libpinentry-curses.a \ +@FALLBACK_CURSES_TRUE@ $(am__DEPENDENCIES_1) \ +@FALLBACK_CURSES_TRUE@ $(am__DEPENDENCIES_1) +pinentry_qt_DEPENDENCIES = ../pinentry/libpinentry.a \ + $(top_builddir)/secmem/libsecmem.a $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) +pinentry_qt_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ + $(pinentry_qt_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/accessibility.Po \ + ./$(DEPDIR)/capslock.Po ./$(DEPDIR)/capslock_unix.Po \ + ./$(DEPDIR)/capslock_win.Po ./$(DEPDIR)/main.Po \ + ./$(DEPDIR)/pinentry_debug.Po ./$(DEPDIR)/pinentryconfirm.Po \ + ./$(DEPDIR)/pinentrydialog.Po ./$(DEPDIR)/pinentryrc.Po \ + ./$(DEPDIR)/pinlineedit.Po ./$(DEPDIR)/qti18n.Po +am__mv = mv -f +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = +CXXLD = $(CXX) +CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ + -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(pinentry_qt_SOURCES) $(nodist_pinentry_qt_SOURCES) +DIST_SOURCES = $(am__pinentry_qt_SOURCES_DIST) +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + distdir distdir-am +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +COMMON_CFLAGS = @COMMON_CFLAGS@ +COMMON_LIBS = @COMMON_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EFL_CFLAGS = @EFL_CFLAGS@ +EFL_LIBS = @EFL_LIBS@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FLTKCFLAGS = @FLTKCFLAGS@ +FLTKCXXFLAGS = @FLTKCXXFLAGS@ +FLTKLIBS = @FLTKLIBS@ +FLTK_CONFIG = @FLTK_CONFIG@ +GITLOG_TO_CHANGELOG = @GITLOG_TO_CHANGELOG@ +GNOME3_CFLAGS = @GNOME3_CFLAGS@ +GNOME3_LIBS = @GNOME3_LIBS@ +GPGRT_CONFIG = @GPGRT_CONFIG@ +GPG_ERROR_CFLAGS = @GPG_ERROR_CFLAGS@ +GPG_ERROR_CONFIG = @GPG_ERROR_CONFIG@ +GPG_ERROR_LIBS = @GPG_ERROR_LIBS@ +GPG_ERROR_MT_CFLAGS = @GPG_ERROR_MT_CFLAGS@ +GPG_ERROR_MT_LIBS = @GPG_ERROR_MT_LIBS@ +GREP = @GREP@ +GTK2_CFLAGS = @GTK2_CFLAGS@ +GTK2_LIBS = @GTK2_LIBS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KF5WAYLANDCLIENT_CFLAGS = @KF5WAYLANDCLIENT_CFLAGS@ +KF5WAYLANDCLIENT_LIBS = @KF5WAYLANDCLIENT_LIBS@ +LDFLAGS = @LDFLAGS@ +LIBASSUAN_CFLAGS = @LIBASSUAN_CFLAGS@ +LIBASSUAN_CONFIG = @LIBASSUAN_CONFIG@ +LIBASSUAN_LIBS = @LIBASSUAN_LIBS@ +LIBCURSES = @LIBCURSES@ +LIBICONV = @LIBICONV@ +LIBNCURSES = @LIBNCURSES@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBSECRET_CFLAGS = @LIBSECRET_CFLAGS@ +LIBSECRET_LIBS = @LIBSECRET_LIBS@ +LIBTERMCAP = @LIBTERMCAP@ +LIBX11_CFLAGS = @LIBX11_CFLAGS@ +LIBX11_LIBS = @LIBX11_LIBS@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MOC2 = @MOC2@ +MOC4 = @MOC4@ +MOC42 = @MOC42@ +NCURSES_CFLAGS = @NCURSES_CFLAGS@ +NCURSES_INCLUDE = @NCURSES_INCLUDE@ +NCURSES_LIBS = @NCURSES_LIBS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PINENTRY_DEFAULT = @PINENTRY_DEFAULT@ +PINENTRY_QT4_CFLAGS = @PINENTRY_QT4_CFLAGS@ +PINENTRY_QT4_LDFLAGS = @PINENTRY_QT4_LDFLAGS@ +PINENTRY_QT4_LIBS = @PINENTRY_QT4_LIBS@ +PINENTRY_QT_CFLAGS = @PINENTRY_QT_CFLAGS@ +PINENTRY_QT_LDFLAGS = @PINENTRY_QT_LDFLAGS@ +PINENTRY_QT_LIBS = @PINENTRY_QT_LIBS@ +PINENTRY_QT_REQUIRE_CPP11_CFLAGS = @PINENTRY_QT_REQUIRE_CPP11_CFLAGS@ +PINENTRY_QT_REQUIRE_CPP11_LIBS = @PINENTRY_QT_REQUIRE_CPP11_LIBS@ +PINENTRY_QT_X11_EXTRAS_CFLAGS = @PINENTRY_QT_X11_EXTRAS_CFLAGS@ +PINENTRY_QT_X11_EXTRAS_LIBS = @PINENTRY_QT_X11_EXTRAS_LIBS@ +PINENTRY_TQT_CFLAGS = @PINENTRY_TQT_CFLAGS@ +PINENTRY_TQT_LIBS = @PINENTRY_TQT_LIBS@ +PKG_CONFIG = @PKG_CONFIG@ +QTCHOOSER = @QTCHOOSER@ +RANLIB = @RANLIB@ +RCC = @RCC@ +RCC2 = @RCC2@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TQT_MOC = @TQT_MOC@ +VERSION = @VERSION@ +WINDRES = @WINDRES@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +EXTRA_DIST = pinentryrc.qrc +SUBDIRS = icons +@FALLBACK_CURSES_FALSE@ncurses_include = +@FALLBACK_CURSES_TRUE@ncurses_include = $(NCURSES_INCLUDE) +@FALLBACK_CURSES_FALSE@libcurses = +@FALLBACK_CURSES_TRUE@libcurses = ../pinentry/libpinentry-curses.a $(LIBCURSES) $(LIBICONV) +AM_CPPFLAGS = $(COMMON_CFLAGS) \ + -I$(top_srcdir) -I$(top_srcdir)/secmem \ + $(ncurses_include) -I$(top_srcdir)/pinentry + +AM_CXXFLAGS = $(PINENTRY_QT_CFLAGS) +pinentry_qt_LDADD = \ + ../pinentry/libpinentry.a $(top_builddir)/secmem/libsecmem.a \ + $(COMMON_LIBS) $(PINENTRY_QT_LIBS) $(libcurses) + +pinentry_qt_LDFLAGS = $(PINENTRY_QT_LDFLAGS) +@BUILD_PINENTRY_QT_TRUE@BUILT_SOURCES = \ +@BUILD_PINENTRY_QT_TRUE@ pinentryconfirm.moc pinentrydialog.moc pinlineedit.moc capslock.moc \ +@BUILD_PINENTRY_QT_TRUE@ pinentryrc.cpp + +CLEANFILES = $(BUILT_SOURCES) +@HAVE_W32_SYSTEM_FALSE@pinentry_qt_platform_SOURCES = capslock_unix.cpp +@HAVE_W32_SYSTEM_TRUE@pinentry_qt_platform_SOURCES = capslock_win.cpp +pinentry_qt_SOURCES = pinentrydialog.h pinentrydialog.cpp \ + main.cpp pinentryconfirm.cpp pinentryconfirm.h \ + pinlineedit.h pinlineedit.cpp capslock.cpp capslock.h capslock_p.h \ + pinentry_debug.cpp pinentry_debug.h util.h accessibility.cpp \ + accessibility.h qti18n.cpp pinentryrc.qrc \ + $(pinentry_qt_platform_SOURCES) + +nodist_pinentry_qt_SOURCES = $(BUILT_SOURCES) +all: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +.SUFFIXES: +.SUFFIXES: .cpp .h .moc .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu qt/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu qt/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ + fi; \ + for p in $$list; do echo "$$p $$p"; done | \ + sed 's/$(EXEEXT)$$//' | \ + while read p p1; do if test -f $$p \ + ; then echo "$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n;h' \ + -e 's|.*|.|' \ + -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ + sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) files[d] = files[d] " " $$1; \ + else { print "f", $$3 "/" $$4, $$1; } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ + -e 's/$$/$(EXEEXT)/' \ + `; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(bindir)" && rm -f $$files + +clean-binPROGRAMS: + -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) + +pinentry-qt$(EXEEXT): $(pinentry_qt_OBJECTS) $(pinentry_qt_DEPENDENCIES) $(EXTRA_pinentry_qt_DEPENDENCIES) + @rm -f pinentry-qt$(EXEEXT) + $(AM_V_CXXLD)$(pinentry_qt_LINK) $(pinentry_qt_OBJECTS) $(pinentry_qt_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/accessibility.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/capslock.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/capslock_unix.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/capslock_win.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pinentry_debug.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pinentryconfirm.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pinentrydialog.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pinentryrc.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pinlineedit.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/qti18n.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) + +.cpp.o: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< + +.cpp.obj: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) check-recursive +all-am: Makefile $(PROGRAMS) +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(bindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-recursive +install-exec: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +clean: clean-recursive + +clean-am: clean-binPROGRAMS clean-generic mostlyclean-am + +distclean: distclean-recursive + -rm -f ./$(DEPDIR)/accessibility.Po + -rm -f ./$(DEPDIR)/capslock.Po + -rm -f ./$(DEPDIR)/capslock_unix.Po + -rm -f ./$(DEPDIR)/capslock_win.Po + -rm -f ./$(DEPDIR)/main.Po + -rm -f ./$(DEPDIR)/pinentry_debug.Po + -rm -f ./$(DEPDIR)/pinentryconfirm.Po + -rm -f ./$(DEPDIR)/pinentrydialog.Po + -rm -f ./$(DEPDIR)/pinentryrc.Po + -rm -f ./$(DEPDIR)/pinlineedit.Po + -rm -f ./$(DEPDIR)/qti18n.Po + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: install-binPROGRAMS + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f ./$(DEPDIR)/accessibility.Po + -rm -f ./$(DEPDIR)/capslock.Po + -rm -f ./$(DEPDIR)/capslock_unix.Po + -rm -f ./$(DEPDIR)/capslock_win.Po + -rm -f ./$(DEPDIR)/main.Po + -rm -f ./$(DEPDIR)/pinentry_debug.Po + -rm -f ./$(DEPDIR)/pinentryconfirm.Po + -rm -f ./$(DEPDIR)/pinentrydialog.Po + -rm -f ./$(DEPDIR)/pinentryrc.Po + -rm -f ./$(DEPDIR)/pinlineedit.Po + -rm -f ./$(DEPDIR)/qti18n.Po + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-compile mostlyclean-generic + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-binPROGRAMS + +.MAKE: $(am__recursive_targets) all check install install-am \ + install-exec install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ + am--depfiles check check-am clean clean-binPROGRAMS \ + clean-generic cscopelist-am ctags ctags-am distclean \ + distclean-compile distclean-generic distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-binPROGRAMS install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-binPROGRAMS + +.PRECIOUS: Makefile + + +.h.moc: + $(MOC) `test -f '$<' || echo '$(srcdir)/'`$< -o $@ + +pinentryrc.cpp: pinentryrc.qrc + $(RCC) `test -f '$<' || echo '$(srcdir)/'`$< -o $@ + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/accessibility.cpp b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/accessibility.cpp new file mode 100644 index 00000000..7372df74 --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/accessibility.cpp @@ -0,0 +1,70 @@ +/* accessibility.cpp - Helpers for making pinentry accessible + * Copyright (C) 2021 g10 Code GmbH + * + * Software engineering by Ingo Klöcker + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include "accessibility.h" + +#include +#include +#include +#include + +#include "pinentry_debug.h" + +namespace Accessibility +{ + +void setDescription(QWidget *w, const QString &text) +{ + if (w) { +#ifndef QT_NO_ACCESSIBILITY + w->setAccessibleDescription(text); +#endif + } +} + +void setName(QWidget *w, const QString &text) +{ + if (w) { +#ifndef QT_NO_ACCESSIBILITY + w->setAccessibleName(text); +#endif + } +} + +void selectLabelText(QLabel *label) +{ + if (!label || label->text().isEmpty()) { + return; + } + if (label->textFormat() == Qt::PlainText) { + label->setSelection(0, label->text().size()); + } else if (label->textFormat() == Qt::RichText) { + // unfortunately, there is no selectAll(); therefore, we need + // to determine the "visual" length of the text by stripping + // the label's text of all formatting information + QTextDocument temp; + temp.setHtml(label->text()); + label->setSelection(0, temp.toRawText().size()); + } else { + qDebug(PINENTRY_LOG) << "Label with unsupported text format" << label->textFormat() << "got focus"; + } +} + +} // namespace Accessibility diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/accessibility.h b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/accessibility.h new file mode 100644 index 00000000..831964bb --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/accessibility.h @@ -0,0 +1,45 @@ +/* accessibility.h - Helpers for making pinentry accessible + * Copyright (C) 2021 g10 Code GmbH + * + * Software engineering by Ingo Klöcker + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifndef __PINENTRY_QT_ACCESSIBILITY_H__ +#define __PINENTRY_QT_ACCESSIBILITY_H__ + +class QLabel; +class QString; +class QWidget; + +namespace Accessibility +{ + +/* Wrapper for QWidget::setAccessibleDescription which does nothing if + QT_NO_ACCESSIBILITY is defined. */ +void setDescription(QWidget *w, const QString &text); + +/* Wrapper for QWidget::setAccessibleName which does nothing if + QT_NO_ACCESSIBILITY is defined. */ +void setName(QWidget *w, const QString &text); + +/* Selects the text displayed by the label. Only QLabel with text format + Qt::PlainText or Qt::RichText are supported. */ +void selectLabelText(QLabel *label); + +} // namespace Accessibility + +#endif // __PINENTRY_QT_ACCESSIBILITY_H__ diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/capslock.cpp b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/capslock.cpp new file mode 100644 index 00000000..2d20864d --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/capslock.cpp @@ -0,0 +1,53 @@ +/* capslock.cpp - Helper to check whether Caps Lock is on + * Copyright (C) 2021 g10 Code GmbH + * + * Software engineering by Ingo Klöcker + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "capslock.h" +#include "capslock_p.h" + +#include + +#include + +CapsLockWatcher::Private::Private(CapsLockWatcher *q) + : q{q} +{ +#ifdef PINENTRY_QT_WAYLAND + if (qApp->platformName() == QLatin1String("wayland")) { + watchWayland(); + } +#endif +} + +CapsLockWatcher::CapsLockWatcher(QObject *parent) + : QObject{parent} + , d{new Private{this}} +{ + if (qApp->platformName() == QLatin1String("wayland")) { +#ifndef PINENTRY_QT_WAYLAND + qWarning() << "CapsLockWatcher was compiled without support for Wayland"; +#endif + } +} + +#include "capslock.moc" diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/capslock.h b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/capslock.h new file mode 100644 index 00000000..b5a04855 --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/capslock.h @@ -0,0 +1,52 @@ +/* capslock.h - Helper to check whether Caps Lock is on + * Copyright (C) 2021 g10 Code GmbH + * + * Software engineering by Ingo Klöcker + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifndef __PINENTRY_QT_CAPSLOCK_H__ +#define __PINENTRY_QT_CAPSLOCK_H__ + +#include + +#include + +enum class LockState +{ + Unknown = -1, + Off, + On +}; + +LockState capsLockState(); + +class CapsLockWatcher : public QObject +{ + Q_OBJECT + +public: + explicit CapsLockWatcher(QObject *parent = nullptr); + +Q_SIGNALS: + void stateChanged(bool locked); + +private: + class Private; + std::unique_ptr d; +}; + +#endif // __PINENTRY_QT_CAPSLOCK_H__ diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/capslock_p.h b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/capslock_p.h new file mode 100644 index 00000000..8c6fc491 --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/capslock_p.h @@ -0,0 +1,61 @@ +/* capslock_p.h - Helper to check whether Caps Lock is on + * Copyright (C) 2021 g10 Code GmbH + * + * Software engineering by Ingo Klöcker + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifndef __PINENTRY_QT_CAPSLOCK_P_H__ +#define __PINENTRY_QT_CAPSLOCK_P_H__ + +#include "capslock.h" + +#ifdef PINENTRY_QT_WAYLAND +namespace KWayland +{ +namespace Client +{ +class Registry; +class Seat; +} +} +#endif + +class CapsLockWatcher::Private +{ +public: + explicit Private(CapsLockWatcher *); +#ifdef PINENTRY_QT_WAYLAND + void watchWayland(); +#endif + +private: +#ifdef PINENTRY_QT_WAYLAND + void registry_seatAnnounced(quint32, quint32); + void seat_hasKeyboardChanged(bool); + void keyboard_modifiersChanged(quint32); +#endif + +private: + CapsLockWatcher *const q; + +#ifdef PINENTRY_QT_WAYLAND + KWayland::Client::Registry *registry = nullptr; + KWayland::Client::Seat *seat = nullptr; +#endif +}; + +#endif // __PINENTRY_QT_CAPSLOCK_P_H__ diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/capslock_unix.cpp b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/capslock_unix.cpp new file mode 100644 index 00000000..320f738b --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/capslock_unix.cpp @@ -0,0 +1,136 @@ +/* capslock_unix.cpp - Helper to check whether Caps Lock is on + * Copyright (C) 2021 g10 Code GmbH + * + * Software engineering by Ingo Klöcker + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "capslock.h" +#include "capslock_p.h" + +#ifdef PINENTRY_QT_WAYLAND +# include +# include +# include +# include +#endif + +#include + +#ifdef PINENTRY_QT_X11 +# include +# include +# undef Status +#endif + +#include + +#ifdef PINENTRY_QT_WAYLAND +using namespace KWayland::Client; +#endif + +#ifdef PINENTRY_QT_WAYLAND +static bool watchingWayland = false; +#endif + +LockState capsLockState() +{ + static bool reportUnsupportedPlatform = true; +#ifdef PINENTRY_QT_X11 + if (qApp->platformName() == QLatin1String("xcb")) { + unsigned int state; + XkbGetIndicatorState(QX11Info::display(), XkbUseCoreKbd, &state); + return (state & 0x01) == 1 ? LockState::On : LockState::Off; + } +#endif +#ifdef PINENTRY_QT_WAYLAND + if (qApp->platformName() == QLatin1String("wayland")) { + if (!watchingWayland && reportUnsupportedPlatform) { + qDebug() << "Use CapsLockWatcher for checking for Caps Lock on Wayland"; + } + } else +#endif + if (reportUnsupportedPlatform) { + qWarning() << "Checking for Caps Lock not possible on unsupported platform:" << qApp->platformName(); + } + reportUnsupportedPlatform = false; + return LockState::Unknown; +} + +#ifdef PINENTRY_QT_WAYLAND +void CapsLockWatcher::Private::watchWayland() +{ + watchingWayland = true; + auto connection = ConnectionThread::fromApplication(q); + if (!connection) { + qWarning() << "Failed to get connection to Wayland server from QPA"; + return; + } + registry = new Registry{q}; + registry->create(connection); + if (!registry->isValid()) { + qWarning() << "Failed to create valid KWayland registry"; + return; + } + registry->setup(); + + connect(registry, &Registry::seatAnnounced, + q, [this] (quint32 name, quint32 version) { registry_seatAnnounced(name, version); }); +} + +void CapsLockWatcher::Private::registry_seatAnnounced(quint32 name, quint32 version) +{ + Q_ASSERT(registry); + seat = registry->createSeat(name, version, q); + if (!seat->isValid()) { + qWarning() << "Failed to create valid KWayland seat"; + return; + } + + connect(seat, &Seat::hasKeyboardChanged, + q, [this] (bool hasKeyboard) { seat_hasKeyboardChanged(hasKeyboard); }); +} + +void CapsLockWatcher::Private::seat_hasKeyboardChanged(bool hasKeyboard) +{ + Q_ASSERT(seat); + + if (!hasKeyboard) { + qDebug() << "Seat has no keyboard"; + return; + } + + auto keyboard = seat->createKeyboard(q); + if (!keyboard->isValid()) { + qWarning() << "Failed to create valid KWayland keyboard"; + return; + } + + connect(keyboard, &Keyboard::modifiersChanged, + q, [this] (quint32, quint32, quint32 locked, quint32) { keyboard_modifiersChanged(locked); }); +} + +void CapsLockWatcher::Private::keyboard_modifiersChanged(quint32 locked) +{ + const bool capsLockIsLocked = (locked & 2u) != 0; + qDebug() << "Caps Lock is locked:" << capsLockIsLocked; + Q_EMIT q->stateChanged(capsLockIsLocked); +} +#endif diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/capslock_win.cpp b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/capslock_win.cpp new file mode 100644 index 00000000..960369b4 --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/capslock_win.cpp @@ -0,0 +1,28 @@ +/* capslock_win.cpp - Helper to check whether Caps Lock is on + * Copyright (C) 2021 g10 Code GmbH + * + * Software engineering by Ingo Klöcker + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include "capslock.h" + +#include + +LockState capsLockState() +{ + return (GetKeyState(VK_CAPITAL) & 1) ? LockState::On : LockState::Off; +} diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/icons/Makefile.am b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/icons/Makefile.am new file mode 100644 index 00000000..49cef366 --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/icons/Makefile.am @@ -0,0 +1,26 @@ +# Makefile.am +# Copyright (C) 2022 g10 Code GmbH +# +# This file is part of PINENTRY. +# +# PINENTRY is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# PINENTRY is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# SPDX-License-Identifier: GPL-2.0+ + +## Process this file with automake to produce Makefile.in + +EXTRA_DIST = data-error.svg \ + document-encrypt.png \ + hint.svg \ + password-generate.svg \ + visibility.svg diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/icons/Makefile.in b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/icons/Makefile.in new file mode 100644 index 00000000..f2d3330f --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/icons/Makefile.in @@ -0,0 +1,503 @@ +# Makefile.in generated by automake 1.16.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2020 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Makefile.am +# Copyright (C) 2022 g10 Code GmbH +# +# This file is part of PINENTRY. +# +# PINENTRY is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# PINENTRY is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# SPDX-License-Identifier: GPL-2.0+ +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = qt/icons +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/curses.m4 \ + $(top_srcdir)/m4/gpg-error.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/libassuan.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/qt4.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +COMMON_CFLAGS = @COMMON_CFLAGS@ +COMMON_LIBS = @COMMON_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EFL_CFLAGS = @EFL_CFLAGS@ +EFL_LIBS = @EFL_LIBS@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FLTKCFLAGS = @FLTKCFLAGS@ +FLTKCXXFLAGS = @FLTKCXXFLAGS@ +FLTKLIBS = @FLTKLIBS@ +FLTK_CONFIG = @FLTK_CONFIG@ +GITLOG_TO_CHANGELOG = @GITLOG_TO_CHANGELOG@ +GNOME3_CFLAGS = @GNOME3_CFLAGS@ +GNOME3_LIBS = @GNOME3_LIBS@ +GPGRT_CONFIG = @GPGRT_CONFIG@ +GPG_ERROR_CFLAGS = @GPG_ERROR_CFLAGS@ +GPG_ERROR_CONFIG = @GPG_ERROR_CONFIG@ +GPG_ERROR_LIBS = @GPG_ERROR_LIBS@ +GPG_ERROR_MT_CFLAGS = @GPG_ERROR_MT_CFLAGS@ +GPG_ERROR_MT_LIBS = @GPG_ERROR_MT_LIBS@ +GREP = @GREP@ +GTK2_CFLAGS = @GTK2_CFLAGS@ +GTK2_LIBS = @GTK2_LIBS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KF5WAYLANDCLIENT_CFLAGS = @KF5WAYLANDCLIENT_CFLAGS@ +KF5WAYLANDCLIENT_LIBS = @KF5WAYLANDCLIENT_LIBS@ +LDFLAGS = @LDFLAGS@ +LIBASSUAN_CFLAGS = @LIBASSUAN_CFLAGS@ +LIBASSUAN_CONFIG = @LIBASSUAN_CONFIG@ +LIBASSUAN_LIBS = @LIBASSUAN_LIBS@ +LIBCURSES = @LIBCURSES@ +LIBICONV = @LIBICONV@ +LIBNCURSES = @LIBNCURSES@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBSECRET_CFLAGS = @LIBSECRET_CFLAGS@ +LIBSECRET_LIBS = @LIBSECRET_LIBS@ +LIBTERMCAP = @LIBTERMCAP@ +LIBX11_CFLAGS = @LIBX11_CFLAGS@ +LIBX11_LIBS = @LIBX11_LIBS@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MOC2 = @MOC2@ +MOC4 = @MOC4@ +MOC42 = @MOC42@ +NCURSES_CFLAGS = @NCURSES_CFLAGS@ +NCURSES_INCLUDE = @NCURSES_INCLUDE@ +NCURSES_LIBS = @NCURSES_LIBS@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PINENTRY_DEFAULT = @PINENTRY_DEFAULT@ +PINENTRY_QT4_CFLAGS = @PINENTRY_QT4_CFLAGS@ +PINENTRY_QT4_LDFLAGS = @PINENTRY_QT4_LDFLAGS@ +PINENTRY_QT4_LIBS = @PINENTRY_QT4_LIBS@ +PINENTRY_QT_CFLAGS = @PINENTRY_QT_CFLAGS@ +PINENTRY_QT_LDFLAGS = @PINENTRY_QT_LDFLAGS@ +PINENTRY_QT_LIBS = @PINENTRY_QT_LIBS@ +PINENTRY_QT_REQUIRE_CPP11_CFLAGS = @PINENTRY_QT_REQUIRE_CPP11_CFLAGS@ +PINENTRY_QT_REQUIRE_CPP11_LIBS = @PINENTRY_QT_REQUIRE_CPP11_LIBS@ +PINENTRY_QT_X11_EXTRAS_CFLAGS = @PINENTRY_QT_X11_EXTRAS_CFLAGS@ +PINENTRY_QT_X11_EXTRAS_LIBS = @PINENTRY_QT_X11_EXTRAS_LIBS@ +PINENTRY_TQT_CFLAGS = @PINENTRY_TQT_CFLAGS@ +PINENTRY_TQT_LIBS = @PINENTRY_TQT_LIBS@ +PKG_CONFIG = @PKG_CONFIG@ +QTCHOOSER = @QTCHOOSER@ +RANLIB = @RANLIB@ +RCC = @RCC@ +RCC2 = @RCC2@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TQT_MOC = @TQT_MOC@ +VERSION = @VERSION@ +WINDRES = @WINDRES@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +EXTRA_DIST = data-error.svg \ + document-encrypt.png \ + hint.svg \ + password-generate.svg \ + visibility.svg + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu qt/icons/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu qt/icons/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic cscopelist-am \ + ctags-am distclean distclean-generic distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ + pdf-am ps ps-am tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/icons/data-error.svg b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/icons/data-error.svg new file mode 100644 index 00000000..6fc3137e --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/icons/data-error.svg @@ -0,0 +1,9 @@ + + + + + diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/document-encrypt.png b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/icons/document-encrypt.png similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/document-encrypt.png rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/icons/document-encrypt.png diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/icons/hint.svg b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/icons/hint.svg new file mode 100644 index 00000000..f6b818fc --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/icons/hint.svg @@ -0,0 +1,13 @@ + + + + + + diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/icons/password-generate.svg b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/icons/password-generate.svg new file mode 100644 index 00000000..12d703c4 --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/icons/password-generate.svg @@ -0,0 +1,13 @@ + + + + + + diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/icons/visibility.svg b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/icons/visibility.svg new file mode 100644 index 00000000..df91c9d3 --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/icons/visibility.svg @@ -0,0 +1,21 @@ + + + + + + + + + + diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/main.cpp b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/main.cpp new file mode 100644 index 00000000..47d15d26 --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/main.cpp @@ -0,0 +1,429 @@ +/* main.cpp - A Qt dialog for PIN entry. + * Copyright (C) 2002, 2008 Klarälvdalens Datakonsult AB (KDAB) + * Copyright (C) 2003, 2021 g10 Code GmbH + * Copyright 2007 Ingo Klöcker + * + * Written by Steffen Hansen . + * Modified by Marcus Brinkmann . + * Modified by Marc Mutz + * Software engineering by Ingo Klöcker + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "accessibility.h" +#include "pinentryconfirm.h" +#include "pinentrydialog.h" +#include "pinentry.h" +#include "util.h" + +#include +#include +#include +#include +#include +#include +#include +#if QT_VERSION >= 0x050000 +#include +#endif + +#include +#include + +#include +#include + +#ifdef FALLBACK_CURSES +#include +#endif + +#if QT_VERSION >= 0x050000 && defined(QT_STATIC) + #include + #ifdef Q_OS_WIN + #include + #include + Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin) + #elif defined(Q_OS_MAC) + Q_IMPORT_PLUGIN(QCocoaIntegrationPlugin) + #else + Q_IMPORT_PLUGIN(QXcbIntegrationPlugin) + #endif +#endif + +#ifdef Q_OS_WIN +#include +#endif + +#include "pinentry_debug.h" + +static QString escape_accel(const QString &s) +{ + + QString result; + result.reserve(s.size()); + + bool afterUnderscore = false; + + for (unsigned int i = 0, end = s.size() ; i != end ; ++i) { + const QChar ch = s[i]; + if (ch == QLatin1Char('_')) { + if (afterUnderscore) { // escaped _ + result += QLatin1Char('_'); + afterUnderscore = false; + } else { // accel + afterUnderscore = true; + } + } else { + if (afterUnderscore || // accel + ch == QLatin1Char('&')) { // escape & from being interpreted by Qt + result += QLatin1Char('&'); + } + result += ch; + afterUnderscore = false; + } + } + + if (afterUnderscore) + // trailing single underscore: shouldn't happen, but deal with it robustly: + { + result += QLatin1Char('_'); + } + + return result; +} + +namespace +{ +class InvalidUtf8 : public std::invalid_argument +{ +public: + InvalidUtf8() : std::invalid_argument("invalid utf8") {} + ~InvalidUtf8() throw() {} +}; +} + +static const bool GPG_AGENT_IS_PORTED_TO_ONLY_SEND_UTF8 = false; + +static QString from_utf8(const char *s) +{ + const QString result = QString::fromUtf8(s); + if (result.contains(QChar::ReplacementCharacter)) { + if (GPG_AGENT_IS_PORTED_TO_ONLY_SEND_UTF8) { + throw InvalidUtf8(); + } else { + return QString::fromLocal8Bit(s); + } + } + + return result; +} + +static void +setup_foreground_window(QWidget *widget, WId parentWid) +{ +#if QT_VERSION >= 0x050000 + /* For windows set the desktop window as the transient parent */ + QWindow *parentWindow = nullptr; + if (parentWid) { + parentWindow = QWindow::fromWinId(parentWid); + } +#ifdef Q_OS_WIN + if (!parentWindow) { + HWND desktop = GetDesktopWindow(); + if (desktop) { + parentWindow = QWindow::fromWinId((WId) desktop); + } + } +#endif + if (parentWindow) { + // Ensure that we have a native wid + widget->winId(); + QWindow *wndHandle = widget->windowHandle(); + + if (wndHandle) { + wndHandle->setTransientParent(parentWindow); + } + } +#endif + widget->setWindowFlags(Qt::Window | + Qt::CustomizeWindowHint | + Qt::WindowTitleHint | + Qt::WindowCloseButtonHint | + Qt::WindowStaysOnTopHint | + Qt::WindowMinimizeButtonHint); +} + +static int +qt_cmd_handler(pinentry_t pe) +{ + int want_pass = !!pe->pin; + + const QString ok = + pe->ok ? escape_accel(from_utf8(pe->ok)) : + pe->default_ok ? escape_accel(from_utf8(pe->default_ok)) : + /* else */ QLatin1String("&OK") ; + const QString cancel = + pe->cancel ? escape_accel(from_utf8(pe->cancel)) : + pe->default_cancel ? escape_accel(from_utf8(pe->default_cancel)) : + /* else */ QLatin1String("&Cancel") ; + + unique_malloced_ptr str{pinentry_get_title(pe)}; + const QString title = + str ? from_utf8(str.get()) : + /* else */ QLatin1String("pinentry-qt") ; + + const QString repeatError = + pe->repeat_error_string ? from_utf8(pe->repeat_error_string) : + QLatin1String("Passphrases do not match"); + const QString repeatString = + pe->repeat_passphrase ? from_utf8(pe->repeat_passphrase) : + QString(); + const QString visibilityTT = + pe->default_tt_visi ? from_utf8(pe->default_tt_visi) : + QLatin1String("Show passphrase"); + const QString hideTT = + pe->default_tt_hide ? from_utf8(pe->default_tt_hide) : + QLatin1String("Hide passphrase"); + + const QString capsLockHint = + pe->default_capshint ? from_utf8(pe->default_capshint) : + QLatin1String("Caps Lock is on"); + + const QString generateLbl = pe->genpin_label ? from_utf8(pe->genpin_label) : + QString(); + const QString generateTT = pe->genpin_tt ? from_utf8(pe->genpin_tt) : + QString(); + + + if (want_pass) { + PinEntryDialog pinentry(nullptr, 0, pe->timeout, true, !!pe->quality_bar, + repeatString, visibilityTT, hideTT); + setup_foreground_window(&pinentry, pe->parent_wid); + pinentry.setPinentryInfo(pe); + pinentry.setPrompt(escape_accel(from_utf8(pe->prompt))); + pinentry.setDescription(from_utf8(pe->description)); + pinentry.setRepeatErrorText(repeatError); + pinentry.setGenpinLabel(generateLbl); + pinentry.setGenpinTT(generateTT); + pinentry.setCapsLockHint(capsLockHint); + pinentry.setFormattedPassphrase({ + bool(pe->formatted_passphrase), + from_utf8(pe->formatted_passphrase_hint)}); + pinentry.setConstraintsOptions({ + bool(pe->constraints_enforce), + from_utf8(pe->constraints_hint_short), + from_utf8(pe->constraints_hint_long), + from_utf8(pe->constraints_error_title) + }); + + if (!title.isEmpty()) { + pinentry.setWindowTitle(title); + } + + /* If we reuse the same dialog window. */ + pinentry.setPin(QString()); + + pinentry.setOkText(ok); + pinentry.setCancelText(cancel); + if (pe->error) { + pinentry.setError(from_utf8(pe->error)); + } + if (pe->quality_bar) { + pinentry.setQualityBar(from_utf8(pe->quality_bar)); + } + if (pe->quality_bar_tt) { + pinentry.setQualityBarTT(from_utf8(pe->quality_bar_tt)); + } + bool ret = pinentry.exec(); + if (!ret) { + if (pinentry.timedOut()) + pe->specific_err = gpg_error (GPG_ERR_TIMEOUT); + return -1; + } + + const QString pinStr = pinentry.pin(); + QByteArray pin = pinStr.toUtf8(); + + if (!!pe->repeat_passphrase) { + /* Should not have been possible to accept + the dialog in that case but we do a safety + check here */ + pe->repeat_okay = (pinStr == pinentry.repeatedPin()); + } + + int len = strlen(pin.constData()); + if (len >= 0) { + pinentry_setbufferlen(pe, len + 1); + if (pe->pin) { + strcpy(pe->pin, pin.constData()); + return len; + } + } + return -1; + } else { + const QString desc = pe->description ? from_utf8(pe->description) : QString(); + const QString notok = pe->notok ? escape_accel(from_utf8(pe->notok)) : QString(); + + const QMessageBox::StandardButtons buttons = + pe->one_button ? QMessageBox::Ok : + pe->notok ? QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel : + /* else */ QMessageBox::Ok | QMessageBox::Cancel ; + + PinentryConfirm box{QMessageBox::Information, title, desc, buttons}; + box.setTextFormat(Qt::PlainText); + box.setTextInteractionFlags(Qt::TextSelectableByMouse); + box.setTimeout(std::chrono::seconds{pe->timeout}); + setup_foreground_window(&box, pe->parent_wid); + + const struct { + QMessageBox::StandardButton button; + QString label; + } buttonLabels[] = { + { QMessageBox::Ok, ok }, + { QMessageBox::Yes, ok }, + { QMessageBox::No, notok }, + { QMessageBox::Cancel, cancel }, + }; + + for (size_t i = 0 ; i < sizeof buttonLabels / sizeof * buttonLabels ; ++i) + if ((buttons & buttonLabels[i].button) && !buttonLabels[i].label.isEmpty()) { + box.button(buttonLabels[i].button)->setText(buttonLabels[i].label); + Accessibility::setDescription(box.button(buttonLabels[i].button), + buttonLabels[i].label); + } + + box.setIconPixmap(applicationIconPixmap()); + + if (!pe->one_button) { + box.setDefaultButton(QMessageBox::Cancel); + } + + box.show(); + raiseWindow(&box); + + const int rc = box.exec(); + + if (rc == QMessageBox::Cancel) { + pe->canceled = true; + } + if (box.timedOut()) { + pe->specific_err = gpg_error (GPG_ERR_TIMEOUT); + } + + return rc == QMessageBox::Ok || rc == QMessageBox::Yes ; + + } +} + +static int +qt_cmd_handler_ex(pinentry_t pe) +{ + try { + return qt_cmd_handler(pe); + } catch (const InvalidUtf8 &) { + pe->locale_err = true; + return pe->pin ? -1 : false ; + } catch (...) { + pe->canceled = true; + return pe->pin ? -1 : false ; + } +} + +pinentry_cmd_handler_t pinentry_cmd_handler = qt_cmd_handler_ex; + +int +main(int argc, char *argv[]) +{ + pinentry_init("pinentry-qt"); + + QApplication *app = NULL; + int new_argc = 0; + +#ifdef FALLBACK_CURSES +#if defined(Q_OS_UNIX) && !defined(Q_OS_DARWIN) + // check a few environment variables that are usually set on X11 or Wayland sessions + const bool hasWaylandDisplay = qEnvironmentVariableIsSet("WAYLAND_DISPLAY"); + const bool isWaylandSessionType = qgetenv("XDG_SESSION_TYPE") == "wayland"; + const bool hasX11Display = pinentry_have_display(argc, argv); + const bool isX11SessionType = qgetenv("XDG_SESSION_TYPE") == "x11"; + const bool isGUISession = hasWaylandDisplay || isWaylandSessionType || hasX11Display || isX11SessionType; + qCDebug(PINENTRY_LOG) << "hasWaylandDisplay:" << hasWaylandDisplay; + qCDebug(PINENTRY_LOG) << "isWaylandSessionType:" << isWaylandSessionType; + qCDebug(PINENTRY_LOG) << "hasX11Display:" << hasX11Display; + qCDebug(PINENTRY_LOG) << "isX11SessionType:" << isX11SessionType; + qCDebug(PINENTRY_LOG) << "isGUISession:" << isGUISession; +#else + const bool isGUISession = pinentry_have_display(argc, argv); +#endif + if (!isGUISession) { + pinentry_cmd_handler = curses_cmd_handler; + pinentry_set_flavor_flag ("curses"); + } else +#endif + { + /* Qt does only understand -display but not --display; thus we + are fixing that here. The code is pretty simply and may get + confused if an argument is called "--display". */ + char **new_argv, *p; + size_t n; + int i, done; + + for (n = 0, i = 0; i < argc; i++) { + n += strlen(argv[i]) + 1; + } + n++; + new_argv = (char **)calloc(argc + 1, sizeof * new_argv); + if (new_argv) { + *new_argv = (char *)malloc(n); + } + if (!new_argv || !*new_argv) { + fprintf(stderr, "pinentry-qt: can't fixup argument list: %s\n", + strerror(errno)); + exit(EXIT_FAILURE); + + } + for (done = 0, p = *new_argv, i = 0; i < argc; i++) + if (!done && !strcmp(argv[i], "--display")) { + new_argv[i] = strcpy(p, argv[i] + 1); + p += strlen(argv[i] + 1) + 1; + done = 1; + } else { + new_argv[i] = strcpy(p, argv[i]); + p += strlen(argv[i]) + 1; + } + + /* Note: QApplication uses int &argc so argc has to be valid + * for the full lifetime of the application. + * + * As Qt might modify argc / argv we use copies here so that + * we do not loose options that are handled in both. e.g. display. + */ + new_argc = argc; + Q_ASSERT (new_argc); + app = new QApplication(new_argc, new_argv); + app->setWindowIcon(QIcon(QLatin1String(":/icons/document-encrypt.png"))); + } + + pinentry_parse_opts(argc, argv); + + int rc = pinentry_loop(); + delete app; + return rc ? EXIT_FAILURE : EXIT_SUCCESS ; +} diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinentry_debug.cpp b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinentry_debug.cpp new file mode 100644 index 00000000..9afbcdb3 --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinentry_debug.cpp @@ -0,0 +1,31 @@ +/* pinentry_debug.h - Logging category for pinentry + * Copyright (C) 2021 g10 Code GmbH + * + * Software engineering by Ingo Klöcker + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "pinentry_debug.h" + +#if QT_VERSION >= QT_VERSION_CHECK(5, 4, 0) +Q_LOGGING_CATEGORY(PINENTRY_LOG, "gpg.pinentry", QtWarningMsg) +#else +Q_LOGGING_CATEGORY(PINENTRY_LOG, "gpg.pinentry") +#endif diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinentry_debug.h b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinentry_debug.h new file mode 100644 index 00000000..fc8c808a --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinentry_debug.h @@ -0,0 +1,28 @@ +/* pinentry_debug.h - Logging category for pinentry + * Copyright (C) 2021 g10 Code GmbH + * + * Software engineering by Ingo Klöcker + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifndef __PINENTRY_QT_DEBUG_H__ +#define __PINENTRY_QT_DEBUG_H__ + +#include + +Q_DECLARE_LOGGING_CATEGORY(PINENTRY_LOG) + +#endif // __PINENTRY_QT_DEBUG_H__ diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinentryconfirm.cpp b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinentryconfirm.cpp new file mode 100644 index 00000000..a97eaa6e --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinentryconfirm.cpp @@ -0,0 +1,145 @@ +/* pinentryconfirm.cpp - A QMessageBox with a timeout + * + * Copyright (C) 2011 Ben Kibbey + * Copyright (C) 2022 g10 Code GmbH + * + * Software engineering by Ingo Klöcker + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include "pinentryconfirm.h" + +#include "accessibility.h" +#include "pinentrydialog.h" + +#include +#include +#include +#include +#include +#include + +namespace +{ +QLabel *messageBoxLabel(QMessageBox *messageBox) +{ + return messageBox->findChild(QStringLiteral("qt_msgbox_label")); +} +} + +PinentryConfirm::PinentryConfirm(Icon icon, const QString &title, const QString &text, + StandardButtons buttons, QWidget *parent, Qt::WindowFlags flags) + : QMessageBox{icon, title, text, buttons, parent, flags} +{ + _timer.callOnTimeout(this, &PinentryConfirm::slotTimeout); + Accessibility::setDescription(this, text); + Accessibility::setName(this, title); + +#ifndef QT_NO_ACCESSIBILITY + QAccessible::installActivationObserver(this); + accessibilityActiveChanged(QAccessible::isActive()); +#endif + +#if QT_VERSION >= 0x050000 + /* This is in line with PinentryDialog ctor to have a maximizing + * animation when opening. */ + if (qApp->platformName() != QLatin1String("wayland")) { + setWindowState(Qt::WindowMinimized); + QTimer::singleShot(0, this, [this] () { + raiseWindow(this); + }); + } +#else + activateWindow(); + raise(); +#endif +} + +PinentryConfirm::~PinentryConfirm() +{ +#ifndef QT_NO_ACCESSIBILITY + QAccessible::removeActivationObserver(this); +#endif +} + +void PinentryConfirm::setTimeout(std::chrono::seconds timeout) +{ + _timer.setInterval(timeout); +} + +std::chrono::seconds PinentryConfirm::timeout() const +{ + return std::chrono::duration_cast(_timer.intervalAsDuration()); +} + +bool PinentryConfirm::timedOut() const +{ + return _timed_out; +} + +void PinentryConfirm::showEvent(QShowEvent *event) +{ + static bool resized; + if (!resized) { + QGridLayout* lay = dynamic_cast (layout()); + if (lay) { + QSize textSize = fontMetrics().size(Qt::TextExpandTabs, text(), fontMetrics().maxWidth()); + QSpacerItem* horizontalSpacer = new QSpacerItem(textSize.width() + iconPixmap().width(), + 0, QSizePolicy::Minimum, QSizePolicy::Expanding); + lay->addItem(horizontalSpacer, lay->rowCount(), 1, 1, lay->columnCount() - 1); + } + resized = true; + } + + QMessageBox::showEvent(event); + + if (timeout() > std::chrono::milliseconds::zero()) { + _timer.setSingleShot(true); + _timer.start(); + } +} + +bool PinentryConfirm::focusNextPrevChild(bool next) +{ + auto ret = QMessageBox::focusNextPrevChild(next); + if (ret && (focusWidget() == messageBoxLabel(this))) { + Accessibility::selectLabelText(messageBoxLabel(this)); + } + return ret; +} + +void PinentryConfirm::slotTimeout() +{ + QAbstractButton *b = button(QMessageBox::Cancel); + _timed_out = true; + + if (b) { + b->animateClick(0); + } +} + +#ifndef QT_NO_ACCESSIBILITY +void PinentryConfirm::accessibilityActiveChanged(bool active) +{ + // Allow text label to get focus if accessibility is active + const auto focusPolicy = active ? Qt::StrongFocus : Qt::ClickFocus; + if (auto label = messageBoxLabel(this)) { + label->setFocusPolicy(focusPolicy); + } +} +#endif + +#include "pinentryconfirm.moc" diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinentryconfirm.h b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinentryconfirm.h new file mode 100644 index 00000000..f175f53a --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinentryconfirm.h @@ -0,0 +1,64 @@ +/* pinentryconfirm.h - A QMessageBox with a timeout + * + * Copyright (C) 2011 Ben Kibbey + * Copyright (C) 2022 g10 Code GmbH + * + * Software engineering by Ingo Klöcker + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifndef PINENTRYCONFIRM_H +#define PINENTRYCONFIRM_H + +#include +#include +#include + +class PinentryConfirm : public QMessageBox +#ifndef QT_NO_ACCESSIBILITY + , public QAccessible::ActivationObserver +#endif +{ + Q_OBJECT +public: + PinentryConfirm(Icon icon, const QString &title, const QString &text, + StandardButtons buttons = NoButton, QWidget *parent = nullptr, + Qt::WindowFlags flags = Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint); + ~PinentryConfirm() override; + + void setTimeout(std::chrono::seconds timeout); + std::chrono::seconds timeout() const; + + bool timedOut() const; + +protected: + void showEvent(QShowEvent *event) override; + bool focusNextPrevChild(bool next) override; + +private Q_SLOTS: + void slotTimeout(); + +private: +#ifndef QT_NO_ACCESSIBILITY + void accessibilityActiveChanged(bool active) override; +#endif + +private: + QTimer _timer; + bool _timed_out = false; +}; + +#endif diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinentrydialog.cpp b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinentrydialog.cpp new file mode 100644 index 00000000..17e87e6c --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinentrydialog.cpp @@ -0,0 +1,793 @@ +/* pinentrydialog.cpp - A (not yet) secure Qt 4 dialog for PIN entry. + * Copyright (C) 2002, 2008 Klarälvdalens Datakonsult AB (KDAB) + * Copyright 2007 Ingo Klöcker + * Copyright 2016 Intevation GmbH + * Copyright (C) 2021, 2022 g10 Code GmbH + * + * Written by Steffen Hansen . + * Modified by Andre Heinecke + * Software engineering by Ingo Klöcker + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "pinentrydialog.h" + +#include "accessibility.h" +#include "capslock.h" +#include "pinlineedit.h" +#include "util.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#ifdef Q_OS_WIN +#include +#if QT_VERSION >= 0x050700 +#include +#endif +#endif + +void raiseWindow(QWidget *w) +{ +#ifdef Q_OS_WIN +#if QT_VERSION >= 0x050700 + QWindowsWindowFunctions::setWindowActivationBehavior( + QWindowsWindowFunctions::AlwaysActivateWindow); +#endif +#endif + w->setWindowState((w->windowState() & ~Qt::WindowMinimized) | Qt::WindowActive); + w->activateWindow(); + w->raise(); +} + +QPixmap applicationIconPixmap(const QIcon &overlayIcon) +{ + QPixmap pm = qApp->windowIcon().pixmap(48, 48); + + if (!overlayIcon.isNull()) { + QPainter painter(&pm); + const int emblemSize = 22; + painter.drawPixmap(pm.width() - emblemSize, 0, + overlayIcon.pixmap(emblemSize, emblemSize)); + } + + return pm; +} + +namespace +{ + +class TextLabel : public QLabel +{ +public: + using QLabel::QLabel; + +protected: + void focusInEvent(QFocusEvent *ev) override; +}; + +void TextLabel::focusInEvent(QFocusEvent *ev) +{ + QLabel::focusInEvent(ev); + + // if the text label gets focus, then select its text; this is a workaround + // for missing focus indicators for labels in many Qt styles + const Qt::FocusReason reason = ev->reason(); + const auto isKeyboardFocusEvent = reason == Qt::TabFocusReason + || reason == Qt::BacktabFocusReason + || reason == Qt::ShortcutFocusReason; + if (!text().isEmpty() && isKeyboardFocusEvent) { + Accessibility::selectLabelText(this); + } +} + +} + +void PinEntryDialog::slotTimeout() +{ + _timed_out = true; + reject(); +} + +PinEntryDialog::PinEntryDialog(QWidget *parent, const char *name, + int timeout, bool modal, bool enable_quality_bar, + const QString &repeatString, + const QString &visibilityTT, + const QString &hideTT) + : QDialog{parent} + , _have_quality_bar{enable_quality_bar} + , mVisibilityTT{visibilityTT} + , mHideTT{hideTT} +{ + Q_UNUSED(name) + + if (modal) { + setWindowModality(Qt::ApplicationModal); + } + + QPalette redTextPalette; + redTextPalette.setColor(QPalette::WindowText, Qt::red); + + auto *const mainLayout = new QVBoxLayout{this}; + + auto *const hbox = new QHBoxLayout; + + _icon = new QLabel(this); + _icon->setPixmap(applicationIconPixmap()); + hbox->addWidget(_icon, 0, Qt::AlignVCenter | Qt::AlignLeft); + + auto *const grid = new QGridLayout; + int row = 1; + + _error = new TextLabel{this}; + _error->setTextFormat(Qt::PlainText); + _error->setTextInteractionFlags(Qt::TextSelectableByMouse); + _error->setPalette(redTextPalette); + _error->hide(); + grid->addWidget(_error, row, 1, 1, 2); + + row++; + _desc = new TextLabel{this}; + _desc->setTextFormat(Qt::PlainText); + _desc->setTextInteractionFlags(Qt::TextSelectableByMouse); + _desc->hide(); + grid->addWidget(_desc, row, 1, 1, 2); + + row++; + mCapsLockHint = new TextLabel{this}; + mCapsLockHint->setTextFormat(Qt::PlainText); + mCapsLockHint->setTextInteractionFlags(Qt::TextSelectableByMouse); + mCapsLockHint->setPalette(redTextPalette); + mCapsLockHint->setAlignment(Qt::AlignCenter); + mCapsLockHint->setVisible(false); + grid->addWidget(mCapsLockHint, row, 1, 1, 2); + + row++; + { + _prompt = new QLabel(this); + _prompt->setTextFormat(Qt::PlainText); + _prompt->setTextInteractionFlags(Qt::TextSelectableByMouse); + _prompt->hide(); + grid->addWidget(_prompt, row, 1); + + const auto l = new QHBoxLayout; + _edit = new PinLineEdit(this); + _edit->setMaxLength(256); + _edit->setMinimumWidth(_edit->fontMetrics().averageCharWidth()*20 + 48); + _edit->setEchoMode(QLineEdit::Password); + _prompt->setBuddy(_edit); + l->addWidget(_edit, 1); + + if (!repeatString.isNull()) { + mGenerateButton = new QPushButton{this}; + mGenerateButton->setIcon(QIcon(QLatin1String(":/icons/password-generate"))); + mGenerateButton->setVisible(false); + l->addWidget(mGenerateButton); + } + grid->addLayout(l, row, 2); + } + + /* Set up the show password action */ + const QIcon visibilityIcon = QIcon(QLatin1String(":/icons/visibility.svg")); + const QIcon hideIcon = QIcon(QLatin1String(":/icons/hint.svg")); +#if QT_VERSION >= 0x050200 + if (!visibilityIcon.isNull() && !hideIcon.isNull()) { + mVisiActionEdit = _edit->addAction(visibilityIcon, QLineEdit::TrailingPosition); + mVisiActionEdit->setVisible(false); + mVisiActionEdit->setToolTip(mVisibilityTT); + } else +#endif + { + if (!mVisibilityTT.isNull()) { + row++; + mVisiCB = new QCheckBox{mVisibilityTT, this}; + grid->addWidget(mVisiCB, row, 1, 1, 2, Qt::AlignLeft); + } + } + + row++; + mConstraintsHint = new TextLabel{this}; + mConstraintsHint->setTextFormat(Qt::PlainText); + mConstraintsHint->setTextInteractionFlags(Qt::TextSelectableByMouse); + mConstraintsHint->setVisible(false); + grid->addWidget(mConstraintsHint, row, 2); + + row++; + mFormattedPassphraseHintSpacer = new QLabel{this}; + mFormattedPassphraseHintSpacer->setVisible(false); + mFormattedPassphraseHint = new TextLabel{this}; + mFormattedPassphraseHint->setTextFormat(Qt::PlainText); + mFormattedPassphraseHint->setTextInteractionFlags(Qt::TextSelectableByMouse); + mFormattedPassphraseHint->setVisible(false); + grid->addWidget(mFormattedPassphraseHintSpacer, row, 1); + grid->addWidget(mFormattedPassphraseHint, row, 2); + + if (!repeatString.isNull()) { + row++; + auto repeatLabel = new QLabel{this}; + repeatLabel->setTextFormat(Qt::PlainText); + repeatLabel->setTextInteractionFlags(Qt::TextSelectableByMouse); + repeatLabel->setText(repeatString); + grid->addWidget(repeatLabel, row, 1); + + mRepeat = new PinLineEdit(this); + mRepeat->setMaxLength(256); + mRepeat->setEchoMode(QLineEdit::Password); + repeatLabel->setBuddy(mRepeat); + grid->addWidget(mRepeat, row, 2); + + row++; + mRepeatError = new TextLabel{this}; + mRepeatError->setTextFormat(Qt::PlainText); + mRepeatError->setTextInteractionFlags(Qt::TextSelectableByMouse); + mRepeatError->setPalette(redTextPalette); + mRepeatError->hide(); + grid->addWidget(mRepeatError, row, 2); + } + + if (enable_quality_bar) { + row++; + _quality_bar_label = new QLabel(this); + _quality_bar_label->setTextFormat(Qt::PlainText); + _quality_bar_label->setTextInteractionFlags(Qt::TextSelectableByMouse); + _quality_bar_label->setAlignment(Qt::AlignVCenter); + grid->addWidget(_quality_bar_label, row, 1); + + _quality_bar = new QProgressBar(this); + _quality_bar->setAlignment(Qt::AlignCenter); + _quality_bar_label->setBuddy(_quality_bar); + grid->addWidget(_quality_bar, row, 2); + } + + hbox->addLayout(grid, 1); + mainLayout->addLayout(hbox); + + QDialogButtonBox *const buttons = new QDialogButtonBox(this); + buttons->setStandardButtons(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); + _ok = buttons->button(QDialogButtonBox::Ok); + _cancel = buttons->button(QDialogButtonBox::Cancel); + + if (style()->styleHint(QStyle::SH_DialogButtonBox_ButtonsHaveIcons)) { + _ok->setIcon(style()->standardIcon(QStyle::SP_DialogOkButton)); + _cancel->setIcon(style()->standardIcon(QStyle::SP_DialogCancelButton)); + } + + mainLayout->addStretch(1); + mainLayout->addWidget(buttons); + mainLayout->setSizeConstraint(QLayout::SetFixedSize); + + if (timeout > 0) { + _timer = new QTimer(this); + connect(_timer, &QTimer::timeout, this, &PinEntryDialog::slotTimeout); + _timer->start(timeout * 1000); + } + + connect(buttons, &QDialogButtonBox::accepted, + this, &PinEntryDialog::onAccept); + connect(buttons, &QDialogButtonBox::rejected, + this, &QDialog::reject); + connect(_edit, &QLineEdit::textChanged, + this, &PinEntryDialog::updateQuality); + connect(_edit, &QLineEdit::textChanged, + this, &PinEntryDialog::textChanged); + connect(_edit, &PinLineEdit::backspacePressed, + this, &PinEntryDialog::onBackspace); + if (mGenerateButton) { + connect(mGenerateButton, &QPushButton::clicked, + this, &PinEntryDialog::generatePin); + } + if (mVisiActionEdit) { + connect(mVisiActionEdit, &QAction::triggered, + this, &PinEntryDialog::toggleVisibility); + } + if (mVisiCB) { + connect(mVisiCB, &QCheckBox::toggled, + this, &PinEntryDialog::toggleVisibility); + } + if (mRepeat) { + connect(mRepeat, &QLineEdit::textChanged, + this, &PinEntryDialog::textChanged); + } + + auto capsLockWatcher = new CapsLockWatcher{this}; + connect(capsLockWatcher, &CapsLockWatcher::stateChanged, + this, [this] (bool locked) { + mCapsLockHint->setVisible(locked); + }); + + connect(qApp, &QApplication::focusChanged, + this, &PinEntryDialog::focusChanged); + connect(qApp, &QApplication::applicationStateChanged, + this, &PinEntryDialog::checkCapsLock); + checkCapsLock(); + +#ifndef QT_NO_ACCESSIBILITY + QAccessible::installActivationObserver(this); + accessibilityActiveChanged(QAccessible::isActive()); +#endif + +#if QT_VERSION >= 0x050000 + /* This is mostly an issue on Windows where this results + in the pinentry popping up nicely with an animation and + comes to front. It is not ifdefed for Windows only since + window managers on Linux like KWin can also have this + result in an animation when the pinentry is shown and + not just popping it up. + */ + if (qApp->platformName() != QLatin1String("wayland")) { + setWindowState(Qt::WindowMinimized); + QTimer::singleShot(0, this, [this] () { + raiseWindow(this); + }); + } +#else + activateWindow(); + raise(); +#endif +} + +PinEntryDialog::~PinEntryDialog() +{ +#ifndef QT_NO_ACCESSIBILITY + QAccessible::removeActivationObserver(this); +#endif +} + +void PinEntryDialog::keyPressEvent(QKeyEvent *e) +{ + const auto returnPressed = + (!e->modifiers() && (e->key() == Qt::Key_Enter || e->key() == Qt::Key_Return)) + || (e->modifiers() & Qt::KeypadModifier && e->key() == Qt::Key_Enter); + if (returnPressed && _edit->hasFocus() && mRepeat) { + // if the user pressed Return in the first input field, then move the + // focus to the repeat input field and prevent further event processing + // by QDialog (which would trigger the default button) + mRepeat->setFocus(); + e->ignore(); + return; + } + + QDialog::keyPressEvent(e); +} + +void PinEntryDialog::keyReleaseEvent(QKeyEvent *event) +{ + QDialog::keyReleaseEvent(event); + checkCapsLock(); +} + +void PinEntryDialog::showEvent(QShowEvent *event) +{ + QDialog::showEvent(event); + _edit->setFocus(); +} + +void PinEntryDialog::setDescription(const QString &txt) +{ + _desc->setVisible(!txt.isEmpty()); + _desc->setText(txt); + Accessibility::setDescription(_desc, txt); + _icon->setPixmap(applicationIconPixmap()); + setError(QString()); +} + +QString PinEntryDialog::description() const +{ + return _desc->text(); +} + +void PinEntryDialog::setError(const QString &txt) +{ + if (!txt.isNull()) { + _icon->setPixmap(applicationIconPixmap(QIcon{QStringLiteral(":/icons/data-error.svg")})); + } + _error->setText(txt); + Accessibility::setDescription(_error, txt); + _error->setVisible(!txt.isEmpty()); +} + +QString PinEntryDialog::error() const +{ + return _error->text(); +} + +void PinEntryDialog::setPin(const QString &txt) +{ + _edit->setPin(txt); +} + +QString PinEntryDialog::pin() const +{ + return _edit->pin(); +} + +void PinEntryDialog::setPrompt(const QString &txt) +{ + _prompt->setText(txt); + _prompt->setVisible(!txt.isEmpty()); + if (txt.contains("PIN")) + _disable_echo_allowed = false; +} + +QString PinEntryDialog::prompt() const +{ + return _prompt->text(); +} + +void PinEntryDialog::setOkText(const QString &txt) +{ + _ok->setText(txt); + Accessibility::setDescription(_ok, txt); + _ok->setVisible(!txt.isEmpty()); +} + +void PinEntryDialog::setCancelText(const QString &txt) +{ + _cancel->setText(txt); + Accessibility::setDescription(_cancel, txt); + _cancel->setVisible(!txt.isEmpty()); +} + +void PinEntryDialog::setQualityBar(const QString &txt) +{ + if (_have_quality_bar) { + _quality_bar_label->setText(txt); + Accessibility::setDescription(_quality_bar_label, txt); + } +} + +void PinEntryDialog::setQualityBarTT(const QString &txt) +{ + if (_have_quality_bar) { + _quality_bar->setToolTip(txt); + } +} + +void PinEntryDialog::setGenpinLabel(const QString &txt) +{ + if (!mGenerateButton) { + return; + } + mGenerateButton->setVisible(!txt.isEmpty()); + if (!txt.isEmpty()) { + Accessibility::setName(mGenerateButton, txt); + } +} + +void PinEntryDialog::setGenpinTT(const QString &txt) +{ + if (mGenerateButton) { + mGenerateButton->setToolTip(txt); + } +} + +void PinEntryDialog::setCapsLockHint(const QString &txt) +{ + mCapsLockHint->setText(txt); +} + +void PinEntryDialog::setFormattedPassphrase(const PinEntryDialog::FormattedPassphraseOptions &options) +{ + mFormatPassphrase = options.formatPassphrase; + mFormattedPassphraseHint->setTextFormat(Qt::RichText); + mFormattedPassphraseHint->setText(QLatin1String("") + options.hint.toHtmlEscaped() + QLatin1String("")); + Accessibility::setName(mFormattedPassphraseHint, options.hint); + toggleFormattedPassphrase(); +} + +void PinEntryDialog::setConstraintsOptions(const ConstraintsOptions &options) +{ + mEnforceConstraints = options.enforce; + mConstraintsHint->setText(options.shortHint); + if (!options.longHint.isEmpty()) { + mConstraintsHint->setToolTip(QLatin1String("") + + options.longHint.toHtmlEscaped().replace(QLatin1String("\n\n"), QLatin1String("
")) + + QLatin1String("")); + Accessibility::setDescription(mConstraintsHint, options.longHint); + } + mConstraintsErrorTitle = options.errorTitle; + + mConstraintsHint->setVisible(mEnforceConstraints && !options.shortHint.isEmpty()); +} + +void PinEntryDialog::toggleFormattedPassphrase() +{ + const bool enableFormatting = mFormatPassphrase && _edit->echoMode() == QLineEdit::Normal; + _edit->setFormattedPassphrase(enableFormatting); + if (mRepeat) { + mRepeat->setFormattedPassphrase(enableFormatting); + const bool hintAboutToBeHidden = mFormattedPassphraseHint->isVisible() && !enableFormatting; + if (hintAboutToBeHidden) { + // set hint spacer to current height of hint label before hiding the hint + mFormattedPassphraseHintSpacer->setMinimumHeight(mFormattedPassphraseHint->height()); + mFormattedPassphraseHintSpacer->setVisible(true); + } else if (enableFormatting) { + mFormattedPassphraseHintSpacer->setVisible(false); + } + mFormattedPassphraseHint->setVisible(enableFormatting); + } +} + +void PinEntryDialog::onBackspace() +{ + cancelTimeout(); + + if (_disable_echo_allowed) { + _edit->setEchoMode(QLineEdit::NoEcho); + if (mRepeat) { + mRepeat->setEchoMode(QLineEdit::NoEcho); + } + } +} + +void PinEntryDialog::updateQuality(const QString &txt) +{ + int length; + int percent; + QPalette pal; + + _disable_echo_allowed = false; + + if (!_have_quality_bar || !_pinentry_info) { + return; + } + const QByteArray utf8_pin = txt.toUtf8(); + const char *pin = utf8_pin.constData(); + length = strlen(pin); + percent = length ? pinentry_inq_quality(_pinentry_info, pin, length) : 0; + if (!length) { + _quality_bar->reset(); + } else { + pal = _quality_bar->palette(); + if (percent < 0) { + pal.setColor(QPalette::Highlight, QColor("red")); + percent = -percent; + } else { + pal.setColor(QPalette::Highlight, QColor("green")); + } + _quality_bar->setPalette(pal); + _quality_bar->setValue(percent); + } +} + +void PinEntryDialog::setPinentryInfo(pinentry_t peinfo) +{ + _pinentry_info = peinfo; +} + +void PinEntryDialog::focusChanged(QWidget *old, QWidget *now) +{ + // Grab keyboard. It might be a little weird to do it here, but it works! + // Previously this code was in showEvent, but that did not work in Qt4. + if (!_pinentry_info || _pinentry_info->grab) { + if (_grabbed && old && (old == _edit || old == mRepeat)) { + old->releaseKeyboard(); + _grabbed = false; + } + if (!_grabbed && now && (now == _edit || now == mRepeat)) { + now->grabKeyboard(); + _grabbed = true; + } + } +} + +void PinEntryDialog::textChanged(const QString &text) +{ + Q_UNUSED(text); + + cancelTimeout(); + + if (mVisiActionEdit && sender() == _edit) { + mVisiActionEdit->setVisible(!_edit->pin().isEmpty()); + } + if (mGenerateButton) { + mGenerateButton->setVisible( + _edit->pin().isEmpty() +#ifndef QT_NO_ACCESSIBILITY + && !mGenerateButton->accessibleName().isEmpty() +#endif + ); + } +} + +void PinEntryDialog::generatePin() +{ + unique_malloced_ptr pin{pinentry_inq_genpin(_pinentry_info)}; + if (pin) { + if (_edit->echoMode() == QLineEdit::Password) { + if (mVisiActionEdit) { + mVisiActionEdit->trigger(); + } + if (mVisiCB) { + mVisiCB->setChecked(true); + } + } + const auto pinStr = QString::fromUtf8(pin.get()); + _edit->setPin(pinStr); + mRepeat->setPin(pinStr); + // explicitly focus the first input field and select the generated password + _edit->setFocus(); + _edit->selectAll(); + } +} + +void PinEntryDialog::toggleVisibility() +{ + if (sender() != mVisiCB) { + if (_edit->echoMode() == QLineEdit::Password) { + if (mVisiActionEdit) { + mVisiActionEdit->setIcon(QIcon(QLatin1String(":/icons/hint.svg"))); + mVisiActionEdit->setToolTip(mHideTT); + } + _edit->setEchoMode(QLineEdit::Normal); + if (mRepeat) { + mRepeat->setEchoMode(QLineEdit::Normal); + } + } else { + if (mVisiActionEdit) { + mVisiActionEdit->setIcon(QIcon(QLatin1String(":/icons/visibility.svg"))); + mVisiActionEdit->setToolTip(mVisibilityTT); + } + _edit->setEchoMode(QLineEdit::Password); + if (mRepeat) { + mRepeat->setEchoMode(QLineEdit::Password); + } + } + } else { + if (mVisiCB->isChecked()) { + if (mRepeat) { + mRepeat->setEchoMode(QLineEdit::Normal); + } + _edit->setEchoMode(QLineEdit::Normal); + } else { + if (mRepeat) { + mRepeat->setEchoMode(QLineEdit::Password); + } + _edit->setEchoMode(QLineEdit::Password); + } + } + toggleFormattedPassphrase(); +} + +QString PinEntryDialog::repeatedPin() const +{ + if (mRepeat) { + return mRepeat->pin(); + } + return QString(); +} + +bool PinEntryDialog::timedOut() const +{ + return _timed_out; +} + +void PinEntryDialog::setRepeatErrorText(const QString &err) +{ + if (mRepeatError) { + mRepeatError->setText(err); + } +} + +void PinEntryDialog::cancelTimeout() +{ + if (_timer) { + _timer->stop(); + } +} + +void PinEntryDialog::checkCapsLock() +{ + const auto state = capsLockState(); + if (state != LockState::Unknown) { + mCapsLockHint->setVisible(state == LockState::On); + } +} + +void PinEntryDialog::onAccept() +{ + cancelTimeout(); + + if (mRepeat && mRepeat->pin() != _edit->pin()) { +#ifndef QT_NO_ACCESSIBILITY + if (QAccessible::isActive()) { + QMessageBox::information(this, mRepeatError->text(), mRepeatError->text()); + } else +#endif + { + mRepeatError->setVisible(true); + } + return; + } + + const auto result = checkConstraints(); + if (result != PassphraseNotOk) { + accept(); + } +} + +#ifndef QT_NO_ACCESSIBILITY +void PinEntryDialog::accessibilityActiveChanged(bool active) +{ + // Allow text labels to get focus if accessibility is active + const auto focusPolicy = active ? Qt::StrongFocus : Qt::ClickFocus; + _error->setFocusPolicy(focusPolicy); + _desc->setFocusPolicy(focusPolicy); + mCapsLockHint->setFocusPolicy(focusPolicy); + mConstraintsHint->setFocusPolicy(focusPolicy); + mFormattedPassphraseHint->setFocusPolicy(focusPolicy); + if (mRepeatError) { + mRepeatError->setFocusPolicy(focusPolicy); + } +} +#endif + +PinEntryDialog::PassphraseCheckResult PinEntryDialog::checkConstraints() +{ + if (!mEnforceConstraints) { + return PassphraseNotChecked; + } + + const auto passphrase = _edit->pin().toUtf8(); + unique_malloced_ptr error{pinentry_inq_checkpin( + _pinentry_info, passphrase.constData(), passphrase.size())}; + + if (!error) { + return PassphraseOk; + } + + const auto messageLines = QString::fromUtf8(QByteArray::fromPercentEncoding(error.get())).split(QChar{'\n'}); + if (messageLines.isEmpty()) { + // shouldn't happen because pinentry_inq_checkpin() either returns NULL or a non-empty string + return PassphraseOk; + } + const auto firstLine = messageLines.first(); + const auto indexOfFirstNonEmptyAdditionalLine = messageLines.indexOf(QRegularExpression{QStringLiteral(".*\\S.*")}, 1); + const auto additionalLines = indexOfFirstNonEmptyAdditionalLine > 0 ? messageLines.mid(indexOfFirstNonEmptyAdditionalLine).join(QChar{'\n'}) : QString{}; + QMessageBox messageBox{this}; + messageBox.setIcon(QMessageBox::Information); + messageBox.setWindowTitle(mConstraintsErrorTitle); + messageBox.setText(firstLine); + messageBox.setInformativeText(additionalLines); + messageBox.setStandardButtons(QMessageBox::Ok); + messageBox.exec(); + return PassphraseNotOk; +} + +#include "pinentrydialog.moc" diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinentrydialog.h b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinentrydialog.h new file mode 100644 index 00000000..60161c58 --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinentrydialog.h @@ -0,0 +1,181 @@ +/* pinentrydialog.h - A (not yet) secure Qt 4 dialog for PIN entry. + * Copyright (C) 2002, 2008 Klarälvdalens Datakonsult AB (KDAB) + * Copyright 2007 Ingo Klöcker + * Copyright 2016 Intevation GmbH + * Copyright (C) 2021, 2022 g10 Code GmbH + * + * Written by Steffen Hansen . + * Modified by Andre Heinecke + * Software engineering by Ingo Klöcker + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifndef __PINENTRYDIALOG_H__ +#define __PINENTRYDIALOG_H__ + +#include +#include +#include +#include + +#include "pinentry.h" + +class QIcon; +class QLabel; +class QPushButton; +class QLineEdit; +class PinLineEdit; +class QString; +class QProgressBar; +class QCheckBox; +class QAction; + +QPixmap applicationIconPixmap(const QIcon &overlayIcon = {}); + +void raiseWindow(QWidget *w); + +class PinEntryDialog : public QDialog +#ifndef QT_NO_ACCESSIBILITY + , public QAccessible::ActivationObserver +#endif +{ + Q_OBJECT + + Q_PROPERTY(QString description READ description WRITE setDescription) + Q_PROPERTY(QString error READ error WRITE setError) + Q_PROPERTY(QString pin READ pin WRITE setPin) + Q_PROPERTY(QString prompt READ prompt WRITE setPrompt) +public: + struct FormattedPassphraseOptions + { + bool formatPassphrase; + QString hint; + }; + struct ConstraintsOptions + { + bool enforce; + QString shortHint; + QString longHint; + QString errorTitle; + }; + + explicit PinEntryDialog(QWidget *parent = 0, const char *name = 0, + int timeout = 0, bool modal = false, + bool enable_quality_bar = false, + const QString &repeatString = QString(), + const QString &visibiltyTT = QString(), + const QString &hideTT = QString()); + ~PinEntryDialog() override; + + void setDescription(const QString &); + QString description() const; + + void setError(const QString &); + QString error() const; + + void setPin(const QString &); + QString pin() const; + + QString repeatedPin() const; + void setRepeatErrorText(const QString &); + + void setPrompt(const QString &); + QString prompt() const; + + void setOkText(const QString &); + void setCancelText(const QString &); + + void setQualityBar(const QString &); + void setQualityBarTT(const QString &); + + void setGenpinLabel(const QString &); + void setGenpinTT(const QString &); + + void setCapsLockHint(const QString &); + + void setFormattedPassphrase(const FormattedPassphraseOptions &options); + + void setConstraintsOptions(const ConstraintsOptions &options); + + void setPinentryInfo(pinentry_t); + + bool timedOut() const; + +protected Q_SLOTS: + void updateQuality(const QString &); + void slotTimeout(); + void textChanged(const QString &); + void focusChanged(QWidget *old, QWidget *now); + void toggleVisibility(); + void onBackspace(); + void generatePin(); + void toggleFormattedPassphrase(); + +protected: + void keyPressEvent(QKeyEvent *event) override; + void keyReleaseEvent(QKeyEvent *event) override; + void showEvent(QShowEvent *event) override; + +private Q_SLOTS: + void cancelTimeout(); + void checkCapsLock(); + void onAccept(); + +private: +#ifndef QT_NO_ACCESSIBILITY + void accessibilityActiveChanged(bool active) override; +#endif + + enum PassphraseCheckResult { + PassphraseNotChecked = -1, + PassphraseNotOk = 0, + PassphraseOk + }; + PassphraseCheckResult checkConstraints(); + +private: + QLabel *_icon = nullptr; + QLabel *_desc = nullptr; + QLabel *_error = nullptr; + QLabel *_prompt = nullptr; + QLabel *_quality_bar_label = nullptr; + QProgressBar *_quality_bar = nullptr; + PinLineEdit *_edit = nullptr; + PinLineEdit *mRepeat = nullptr; + QLabel *mRepeatError = nullptr; + QPushButton *_ok = nullptr; + QPushButton *_cancel = nullptr; + bool _grabbed = false; + bool _have_quality_bar = false; + bool _timed_out = false; + bool _disable_echo_allowed = true; + bool mEnforceConstraints = false; + bool mFormatPassphrase = false; + pinentry_t _pinentry_info = nullptr; + QTimer *_timer = nullptr; + QString mVisibilityTT; + QString mHideTT; + QAction *mVisiActionEdit = nullptr; + QPushButton *mGenerateButton = nullptr; + QCheckBox *mVisiCB = nullptr; + QLabel *mFormattedPassphraseHint = nullptr; + QLabel *mFormattedPassphraseHintSpacer = nullptr; + QLabel *mCapsLockHint = nullptr; + QLabel *mConstraintsHint = nullptr; + QString mConstraintsErrorTitle; +}; + +#endif // __PINENTRYDIALOG_H__ diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinentryrc.qrc b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinentryrc.qrc new file mode 100644 index 00000000..2b198de3 --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinentryrc.qrc @@ -0,0 +1,10 @@ + + + + icons/data-error.svg + icons/document-encrypt.png + icons/hint.svg + icons/password-generate.svg + icons/visibility.svg + + diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinlineedit.cpp b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinlineedit.cpp new file mode 100644 index 00000000..286195d8 --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinlineedit.cpp @@ -0,0 +1,232 @@ +/* pinlineedit.cpp - Modified QLineEdit widget. + * Copyright (C) 2018 Damien Goutte-Gattat + * Copyright (C) 2021 g10 Code GmbH + * + * Software engineering by Ingo Klöcker + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include "pinlineedit.h" + +#include +#include +#include + +static const int FormattedPassphraseGroupSize = 5; +static const QChar FormattedPassphraseSeparator = QChar::Nbsp; + +namespace +{ +struct Selection +{ + bool empty() const { return start < 0 || start >= end; } + int length() const { return empty() ? 0 : end - start; } + + int start; + int end; +}; +} + +class PinLineEdit::Private +{ + PinLineEdit *const q; + +public: + Private(PinLineEdit *q) + : q{q} + {} + + QString formatted(QString text) const + { + const int dashCount = text.size() / FormattedPassphraseGroupSize; + text.reserve(text.size() + dashCount); + for (int i = FormattedPassphraseGroupSize; i < text.size(); i += FormattedPassphraseGroupSize + 1) { + text.insert(i, FormattedPassphraseSeparator); + } + return text; + } + + Selection formattedSelection(Selection selection) const + { + if (selection.empty()) { + return selection; + } + return { + selection.start + selection.start / FormattedPassphraseGroupSize, + selection.end + (selection.end - 1) / FormattedPassphraseGroupSize + }; + } + + QString unformatted(QString text) const + { + for (int i = FormattedPassphraseGroupSize; i < text.size(); i += FormattedPassphraseGroupSize) { + text.remove(i, 1); + } + return text; + } + + Selection unformattedSelection(Selection selection) const + { + if (selection.empty()) { + return selection; + } + return { + selection.start - selection.start / (FormattedPassphraseGroupSize + 1), + selection.end - selection.end / (FormattedPassphraseGroupSize + 1) + }; + } + + void copyToClipboard() + { + if (q->echoMode() != QLineEdit::Normal) { + return; + } + + QString text = q->selectedText(); + if (mFormattedPassphrase) { + text.remove(FormattedPassphraseSeparator); + } + if (!text.isEmpty()) { + QGuiApplication::clipboard()->setText(text); + } + } + + int selectionEnd() + { +#if QT_VERSION >= QT_VERSION_CHECK(5, 10, 0) + return q->selectionEnd(); +#else + return q->selectionStart() + q->selectedText().size(); +#endif + } + +public: + bool mFormattedPassphrase = false; +}; + +PinLineEdit::PinLineEdit(QWidget *parent) + : QLineEdit(parent) + , d{new Private{this}} +{ + connect(this, SIGNAL(textEdited(QString)), + this, SLOT(textEdited())); +} + +PinLineEdit::~PinLineEdit() = default; + +void PinLineEdit::setFormattedPassphrase(bool on) +{ + if (on == d->mFormattedPassphrase) { + return; + } + d->mFormattedPassphrase = on; + Selection selection{selectionStart(), d->selectionEnd()}; + if (d->mFormattedPassphrase) { + setText(d->formatted(text())); + selection = d->formattedSelection(selection); + } else { + setText(d->unformatted(text())); + selection = d->unformattedSelection(selection); + } + if (!selection.empty()) { + setSelection(selection.start, selection.length()); + } +} + +void PinLineEdit::copy() const +{ + d->copyToClipboard(); +} + +void PinLineEdit::cut() +{ + if (hasSelectedText()) { + copy(); + del(); + } +} + +void PinLineEdit::setPin(const QString &pin) +{ + setText(d->mFormattedPassphrase ? d->formatted(pin) : pin); +} + +QString PinLineEdit::pin() const +{ + if (d->mFormattedPassphrase) { + return d->unformatted(text()); + } else { + return text(); + } +} + +void PinLineEdit::keyPressEvent(QKeyEvent *e) +{ + if (e == QKeySequence::Copy) { + copy(); + return; + } + else if (e == QKeySequence::Cut) { + if (!isReadOnly() && hasSelectedText()) { + copy(); + del(); + } + return; + } + else if (e == QKeySequence::DeleteEndOfLine) { + if (!isReadOnly()) { + setSelection(cursorPosition(), text().size()); + copy(); + del(); + } + return; + } + else if (e == QKeySequence::DeleteCompleteLine) { + if (!isReadOnly()) { + setSelection(0, text().size()); + copy(); + del(); + } + return; + } + + QLineEdit::keyPressEvent(e); + + if (e->key() == Qt::Key::Key_Backspace) { + emit backspacePressed(); + } +} + +void PinLineEdit::textEdited() +{ + if (!d->mFormattedPassphrase) { + return; + } + auto currentText = text(); + // first calculate the cursor position in the reformatted text; the cursor + // is put left of the separators, so that backspace works as expected + auto cursorPos = cursorPosition(); + cursorPos -= QStringView{currentText}.left(cursorPos).count(FormattedPassphraseSeparator); + cursorPos += std::max(cursorPos - 1, 0) / FormattedPassphraseGroupSize; + // then reformat the text + currentText.remove(FormattedPassphraseSeparator); + currentText = d->formatted(currentText); + // finally, set reformatted text and updated cursor position + setText(currentText); + setCursorPosition(cursorPos); +} + +#include "pinlineedit.moc" diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinlineedit.h b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinlineedit.h new file mode 100644 index 00000000..e67ced83 --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/pinlineedit.h @@ -0,0 +1,63 @@ +/* pinlineedit.h - Modified QLineEdit widget. + * Copyright (C) 2018 Damien Goutte-Gattat + * Copyright (C) 2021 g10 Code GmbH + * + * Software engineering by Ingo Klöcker + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifndef _PINLINEEDIT_H_ +#define _PINLINEEDIT_H_ + +#include + +#include + +class PinLineEdit : public QLineEdit +{ + Q_OBJECT + +public: + explicit PinLineEdit(QWidget *parent = nullptr); + ~PinLineEdit() override; + + void setPin(const QString &pin); + QString pin() const; + +public Q_SLOTS: + void setFormattedPassphrase(bool on); + void copy() const; + void cut(); + +Q_SIGNALS: + void backspacePressed(); + +protected: + void keyPressEvent(QKeyEvent *) override; + +private: + using QLineEdit::setText; + using QLineEdit::text; + +private Q_SLOTS: + void textEdited(); + +private: + class Private; + std::unique_ptr d; +}; + +#endif // _PINLINEEDIT_H_ diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/qti18n.cpp b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/qti18n.cpp new file mode 100644 index 00000000..8e6bb591 --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/qti18n.cpp @@ -0,0 +1,93 @@ +/* qti18n.cpp - Load qt translations for pinentry. + * Copyright 2021 g10 Code GmbH + * SPDX-FileCopyrightText: 2015 Lukáš Tinkl + * SPDX-FileCopyrightText: 2021 Ingo Klöcker + * + * Copied from k18n under the terms of LGPLv2 or later. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include +#include +#include +#include +#include + +#include + +static bool loadCatalog(const QString &catalog, const QLocale &locale) +{ + auto translator = new QTranslator(QCoreApplication::instance()); + + if (!translator->load(locale, catalog, QString(), QLibraryInfo::location(QLibraryInfo::TranslationsPath))) { + qDebug() << "Loading the" << catalog << "catalog failed for locale" << locale; + delete translator; + return false; + } + QCoreApplication::instance()->installTranslator(translator); + return true; +} + +static bool loadCatalog(const QString &catalog, const QLocale &locale, const QLocale &fallbackLocale) +{ + // try to load the catalog for locale + if (loadCatalog(catalog, locale)) { + return true; + } + // if this fails, then try the fallback locale (if it's different from locale) + if (fallbackLocale != locale) { + return loadCatalog(catalog, fallbackLocale); + } + return false; +} + +// load global Qt translation, needed in KDE e.g. by lots of builtin dialogs (QColorDialog, QFontDialog) that we use +static void loadTranslation(const QString &localeName, const QString &fallbackLocaleName) +{ + const QLocale locale{localeName}; + const QLocale fallbackLocale{fallbackLocaleName}; + // first, try to load the qt_ meta catalog + if (loadCatalog(QStringLiteral("qt_"), locale, fallbackLocale)) { + return; + } + // if loading the meta catalog failed, then try loading the four catalogs + // it depends on, i.e. qtbase, qtscript, qtmultimedia, qtxmlpatterns, separately + const auto catalogs = { + QStringLiteral("qtbase_"), + /* QStringLiteral("qtscript_"), + QStringLiteral("qtmultimedia_"), + QStringLiteral("qtxmlpatterns_"), */ + }; + for (const auto &catalog : catalogs) { + loadCatalog(catalog, locale, fallbackLocale); + } +} + +static void load() +{ + // The way Qt translation system handles plural forms makes it necessary to + // have a translation file which contains only plural forms for `en`. That's + // why we load the `en` translation unconditionally, then load the + // translation for the current locale to overload it. + loadCatalog(QStringLiteral("qt_"), QLocale{QStringLiteral("en")}); + + const QLocale locale = QLocale::system(); + if (locale.name() != QStringLiteral("en")) { + loadTranslation(locale.name(), locale.bcp47Name()); + } +} + +Q_COREAPP_STARTUP_FUNCTION(load) diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/util.h b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/util.h new file mode 100644 index 00000000..04f35957 --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt/util.h @@ -0,0 +1,40 @@ +/* util.h - Helper for managing malloced pointers + * Copyright (C) 2021 g10 Code GmbH + * + * Software engineering by Ingo Klöcker + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifndef __PINENTRY_QT_UTIL_H__ +#define __PINENTRY_QT_UTIL_H__ + +#include + +#include + +namespace _detail +{ +struct FreeDeleter { + void operator()(void *ptr) const { + free(ptr); + } +}; +} + +template +using unique_malloced_ptr = std::unique_ptr; + +#endif // __PINENTRY_QT_UTIL_H__ diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/Makefile.am b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt4/Makefile.am similarity index 70% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/Makefile.am rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/qt4/Makefile.am index 698005ea..dc570a1e 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/Makefile.am +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt4/Makefile.am @@ -20,7 +20,7 @@ ## Process this file with automake to produce Makefile.in -bin_PROGRAMS = pinentry-qt +bin_PROGRAMS = pinentry-qt4 EXTRA_DIST = document-encrypt.png pinentry.qrc @@ -37,22 +37,26 @@ endif AM_CPPFLAGS = $(COMMON_CFLAGS) \ -I$(top_srcdir) -I$(top_srcdir)/secmem \ $(ncurses_include) -I$(top_srcdir)/pinentry -AM_CXXFLAGS = $(PINENTRY_QT_CFLAGS) -pinentry_qt_LDADD = \ +AM_CXXFLAGS = $(PINENTRY_QT4_CFLAGS) +pinentry_qt4_LDADD = \ ../pinentry/libpinentry.a $(top_builddir)/secmem/libsecmem.a \ - $(COMMON_LIBS) $(PINENTRY_QT_LIBS) $(libcurses) $(LIBCAP) + $(COMMON_LIBS) $(PINENTRY_QT4_LIBS) $(libcurses) $(LIBCAP) +pinentry_qt4_LDFLAGS = $(PINENTRY_QT4_LDFLAGS) +if BUILD_PINENTRY_QT4 BUILT_SOURCES = \ - pinentryconfirm.moc pinentrydialog.moc + pinentryconfirm.moc pinentrydialog.moc pinlineedit.moc +endif CLEANFILES = \ - pinentryconfirm.moc pinentrydialog.moc + pinentryconfirm.moc pinentrydialog.moc pinlineedit.moc -pinentry_qt_SOURCES = pinentrydialog.h pinentrydialog.cpp \ - main.cpp qrc_pinentry.cpp pinentryconfirm.cpp pinentryconfirm.h +pinentry_qt4_SOURCES = pinentrydialog.h pinentrydialog.cpp \ + main.cpp qrc_pinentry.cpp pinentryconfirm.cpp pinentryconfirm.h \ + pinlineedit.h pinlineedit.cpp -nodist_pinentry_qt_SOURCES = \ - pinentryconfirm.moc pinentrydialog.moc +nodist_pinentry_qt4_SOURCES = \ + pinentryconfirm.moc pinentrydialog.moc pinlineedit.moc .h.moc: - $(MOC) `test -f '$<' || echo '$(srcdir)/'`$< -o $@ + $(MOC4) `test -f '$<' || echo '$(srcdir)/'`$< -o $@ diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/Makefile.in b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt4/Makefile.in similarity index 83% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/Makefile.in rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/qt4/Makefile.in index 4abacbf7..40a19afe 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/Makefile.in +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt4/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -35,7 +35,17 @@ # SPDX-License-Identifier: GPL-2.0+ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -98,38 +108,39 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -bin_PROGRAMS = pinentry-qt$(EXEEXT) -subdir = qt -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/build-aux/depcomp +bin_PROGRAMS = pinentry-qt4$(EXEEXT) +subdir = qt4 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/curses.m4 \ $(top_srcdir)/m4/gpg-error.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/libassuan.m4 $(top_srcdir)/m4/pkg.m4 \ - $(top_srcdir)/m4/qt.m4 $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/qt4.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) -am_pinentry_qt_OBJECTS = pinentrydialog.$(OBJEXT) main.$(OBJEXT) \ - qrc_pinentry.$(OBJEXT) pinentryconfirm.$(OBJEXT) -nodist_pinentry_qt_OBJECTS = -pinentry_qt_OBJECTS = $(am_pinentry_qt_OBJECTS) \ - $(nodist_pinentry_qt_OBJECTS) +am_pinentry_qt4_OBJECTS = pinentrydialog.$(OBJEXT) main.$(OBJEXT) \ + qrc_pinentry.$(OBJEXT) pinentryconfirm.$(OBJEXT) \ + pinlineedit.$(OBJEXT) +nodist_pinentry_qt4_OBJECTS = +pinentry_qt4_OBJECTS = $(am_pinentry_qt4_OBJECTS) \ + $(nodist_pinentry_qt4_OBJECTS) am__DEPENDENCIES_1 = @FALLBACK_CURSES_TRUE@am__DEPENDENCIES_2 = \ @FALLBACK_CURSES_TRUE@ ../pinentry/libpinentry-curses.a \ @FALLBACK_CURSES_TRUE@ $(am__DEPENDENCIES_1) \ @FALLBACK_CURSES_TRUE@ $(am__DEPENDENCIES_1) -pinentry_qt_DEPENDENCIES = ../pinentry/libpinentry.a \ +pinentry_qt4_DEPENDENCIES = ../pinentry/libpinentry.a \ $(top_builddir)/secmem/libsecmem.a $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \ - $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) +pinentry_qt4_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ + $(pinentry_qt4_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -144,7 +155,10 @@ am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__depfiles_maybe = depfiles +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/main.Po \ + ./$(DEPDIR)/pinentryconfirm.Po ./$(DEPDIR)/pinentrydialog.Po \ + ./$(DEPDIR)/pinlineedit.Po ./$(DEPDIR)/qrc_pinentry.Po am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) @@ -171,8 +185,8 @@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = -SOURCES = $(pinentry_qt_SOURCES) $(nodist_pinentry_qt_SOURCES) -DIST_SOURCES = $(pinentry_qt_SOURCES) +SOURCES = $(pinentry_qt4_SOURCES) $(nodist_pinentry_qt4_SOURCES) +DIST_SOURCES = $(pinentry_qt4_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -197,6 +211,8 @@ am__define_uniq_tagged_files = \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -221,6 +237,8 @@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ +EFL_CFLAGS = @EFL_CFLAGS@ +EFL_LIBS = @EFL_LIBS@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FLTKCFLAGS = @FLTKCFLAGS@ @@ -230,6 +248,7 @@ FLTK_CONFIG = @FLTK_CONFIG@ GITLOG_TO_CHANGELOG = @GITLOG_TO_CHANGELOG@ GNOME3_CFLAGS = @GNOME3_CFLAGS@ GNOME3_LIBS = @GNOME3_LIBS@ +GPGRT_CONFIG = @GPGRT_CONFIG@ GPG_ERROR_CFLAGS = @GPG_ERROR_CFLAGS@ GPG_ERROR_CONFIG = @GPG_ERROR_CONFIG@ GPG_ERROR_LIBS = @GPG_ERROR_LIBS@ @@ -243,11 +262,12 @@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KF5WAYLANDCLIENT_CFLAGS = @KF5WAYLANDCLIENT_CFLAGS@ +KF5WAYLANDCLIENT_LIBS = @KF5WAYLANDCLIENT_LIBS@ LDFLAGS = @LDFLAGS@ LIBASSUAN_CFLAGS = @LIBASSUAN_CFLAGS@ LIBASSUAN_CONFIG = @LIBASSUAN_CONFIG@ LIBASSUAN_LIBS = @LIBASSUAN_LIBS@ -LIBCAP = @LIBCAP@ LIBCURSES = @LIBCURSES@ LIBICONV = @LIBICONV@ LIBNCURSES = @LIBNCURSES@ @@ -256,6 +276,8 @@ LIBS = @LIBS@ LIBSECRET_CFLAGS = @LIBSECRET_CFLAGS@ LIBSECRET_LIBS = @LIBSECRET_LIBS@ LIBTERMCAP = @LIBTERMCAP@ +LIBX11_CFLAGS = @LIBX11_CFLAGS@ +LIBX11_LIBS = @LIBX11_LIBS@ LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ @@ -264,6 +286,8 @@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ MOC2 = @MOC2@ +MOC4 = @MOC4@ +MOC42 = @MOC42@ NCURSES_CFLAGS = @NCURSES_CFLAGS@ NCURSES_INCLUDE = @NCURSES_INCLUDE@ NCURSES_LIBS = @NCURSES_LIBS@ @@ -277,16 +301,23 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PINENTRY_DEFAULT = @PINENTRY_DEFAULT@ +PINENTRY_QT4_CFLAGS = @PINENTRY_QT4_CFLAGS@ +PINENTRY_QT4_LDFLAGS = @PINENTRY_QT4_LDFLAGS@ +PINENTRY_QT4_LIBS = @PINENTRY_QT4_LIBS@ PINENTRY_QT_CFLAGS = @PINENTRY_QT_CFLAGS@ +PINENTRY_QT_LDFLAGS = @PINENTRY_QT_LDFLAGS@ PINENTRY_QT_LIBS = @PINENTRY_QT_LIBS@ PINENTRY_QT_REQUIRE_CPP11_CFLAGS = @PINENTRY_QT_REQUIRE_CPP11_CFLAGS@ PINENTRY_QT_REQUIRE_CPP11_LIBS = @PINENTRY_QT_REQUIRE_CPP11_LIBS@ +PINENTRY_QT_X11_EXTRAS_CFLAGS = @PINENTRY_QT_X11_EXTRAS_CFLAGS@ +PINENTRY_QT_X11_EXTRAS_LIBS = @PINENTRY_QT_X11_EXTRAS_LIBS@ PINENTRY_TQT_CFLAGS = @PINENTRY_TQT_CFLAGS@ PINENTRY_TQT_LIBS = @PINENTRY_TQT_LIBS@ PKG_CONFIG = @PKG_CONFIG@ QTCHOOSER = @QTCHOOSER@ RANLIB = @RANLIB@ -SETCAP = @SETCAP@ +RCC = @RCC@ +RCC2 = @RCC2@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ @@ -336,6 +367,7 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -353,22 +385,24 @@ AM_CPPFLAGS = $(COMMON_CFLAGS) \ -I$(top_srcdir) -I$(top_srcdir)/secmem \ $(ncurses_include) -I$(top_srcdir)/pinentry -AM_CXXFLAGS = $(PINENTRY_QT_CFLAGS) -pinentry_qt_LDADD = \ +AM_CXXFLAGS = $(PINENTRY_QT4_CFLAGS) +pinentry_qt4_LDADD = \ ../pinentry/libpinentry.a $(top_builddir)/secmem/libsecmem.a \ - $(COMMON_LIBS) $(PINENTRY_QT_LIBS) $(libcurses) $(LIBCAP) + $(COMMON_LIBS) $(PINENTRY_QT4_LIBS) $(libcurses) $(LIBCAP) -BUILT_SOURCES = \ - pinentryconfirm.moc pinentrydialog.moc +pinentry_qt4_LDFLAGS = $(PINENTRY_QT4_LDFLAGS) +@BUILD_PINENTRY_QT4_TRUE@BUILT_SOURCES = \ +@BUILD_PINENTRY_QT4_TRUE@ pinentryconfirm.moc pinentrydialog.moc pinlineedit.moc CLEANFILES = \ - pinentryconfirm.moc pinentrydialog.moc + pinentryconfirm.moc pinentrydialog.moc pinlineedit.moc -pinentry_qt_SOURCES = pinentrydialog.h pinentrydialog.cpp \ - main.cpp qrc_pinentry.cpp pinentryconfirm.cpp pinentryconfirm.h +pinentry_qt4_SOURCES = pinentrydialog.h pinentrydialog.cpp \ + main.cpp qrc_pinentry.cpp pinentryconfirm.cpp pinentryconfirm.h \ + pinlineedit.h pinlineedit.cpp -nodist_pinentry_qt_SOURCES = \ - pinentryconfirm.moc pinentrydialog.moc +nodist_pinentry_qt4_SOURCES = \ + pinentryconfirm.moc pinentrydialog.moc pinlineedit.moc all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am @@ -384,17 +418,16 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu qt/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu qt4/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu qt/Makefile -.PRECIOUS: Makefile + $(AUTOMAKE) --gnu qt4/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -448,9 +481,9 @@ uninstall-binPROGRAMS: clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) -pinentry-qt$(EXEEXT): $(pinentry_qt_OBJECTS) $(pinentry_qt_DEPENDENCIES) $(EXTRA_pinentry_qt_DEPENDENCIES) - @rm -f pinentry-qt$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(pinentry_qt_OBJECTS) $(pinentry_qt_LDADD) $(LIBS) +pinentry-qt4$(EXEEXT): $(pinentry_qt4_OBJECTS) $(pinentry_qt4_DEPENDENCIES) $(EXTRA_pinentry_qt4_DEPENDENCIES) + @rm -f pinentry-qt4$(EXEEXT) + $(AM_V_CXXLD)$(pinentry_qt4_LINK) $(pinentry_qt4_OBJECTS) $(pinentry_qt4_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -458,10 +491,17 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pinentryconfirm.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pinentrydialog.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/qrc_pinentry.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pinentryconfirm.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pinentrydialog.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pinlineedit.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/qrc_pinentry.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) .cpp.o: @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -529,7 +569,10 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -569,7 +612,8 @@ installdirs: done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am -install-exec: install-exec-am +install-exec: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data: install-data-am uninstall: uninstall-am @@ -605,7 +649,11 @@ clean: clean-am clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/main.Po + -rm -f ./$(DEPDIR)/pinentryconfirm.Po + -rm -f ./$(DEPDIR)/pinentrydialog.Po + -rm -f ./$(DEPDIR)/pinlineedit.Po + -rm -f ./$(DEPDIR)/qrc_pinentry.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -651,7 +699,11 @@ install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/main.Po + -rm -f ./$(DEPDIR)/pinentryconfirm.Po + -rm -f ./$(DEPDIR)/pinentrydialog.Po + -rm -f ./$(DEPDIR)/pinlineedit.Po + -rm -f ./$(DEPDIR)/qrc_pinentry.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -669,9 +721,9 @@ ps-am: uninstall-am: uninstall-binPROGRAMS -.MAKE: all check install install-am install-strip +.MAKE: all check install install-am install-exec install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ distclean distclean-compile distclean-generic distclean-tags \ distdir dvi dvi-am html html-am info info-am install \ @@ -685,9 +737,11 @@ uninstall-am: uninstall-binPROGRAMS ps ps-am tags tags-am uninstall uninstall-am \ uninstall-binPROGRAMS +.PRECIOUS: Makefile + .h.moc: - $(MOC) `test -f '$<' || echo '$(srcdir)/'`$< -o $@ + $(MOC4) `test -f '$<' || echo '$(srcdir)/'`$< -o $@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt4/document-encrypt.png b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt4/document-encrypt.png new file mode 100644 index 0000000000000000000000000000000000000000..b80c2a6fe13898dba5e9a519a2c37f7b01a5972e GIT binary patch literal 1835 zcmV+`2h{k9P) z7Pv94Oze_{sf%umvS6tp?p)jWSh=BXU|~YE-~vGn2+_8bHeCCrz4xAT#_#)cnRDaC zK+~REndIZ2Gc#w-|NXC-a*cCNp5~U36xxj&H*(jnUw^SwD!sb7xyhj`v$M0;Mn^}> zvcql1JTN{!zQ0nbd=ltty{NbadA- z?e88vdUUqo1jfe3acN8tBygx) zE+2v%MqYH2;MJ>FWpHp%@IF2F?cu|R-)qtf&9^J;nI zz{tSBz^C#A?cBL@ANBO~e7wHCu8G~>-!F4>bMtF!YkfzK90_F$&2Et}Bp_)LVB+<&n$YT0o(EM+OUs*> z+KMY3lpX*aJja8N6^i-OpEdznipeNQN|ND6S5KTcaYwe+=!H9Ye}Q}5yLV6M4dm6K zvy)#wBED{&`O;QpVie>65wGq=_j|o*AEOq8l>7f z(3GiWt53SFkm2D7M<{m5vs6ZSF(j!p+aXp0Cc47}-&KpGl$;ZUoE`e?Dk=YIb z9zxq~Jdu5Cum}9dQ`#ea0*v2nHtzA%5?~H64AcLE=Etw!aWB2*q&VFzi^XQ#T_TYMmezAHB|eIegtV6EOqBpW3^;2vbT}DJmABq>VL?P3V1|7h`Cr7k|twcpTwwBtY2%Q2#8Ug96%X?8IZOI z7)Bw(#6(PJKs>U6#x-=;@bO7p%>nIOV<>@`-XTxTDGL}HCS4Es(3aRyQ9_ld!su93 zRlw=GEIp!1hatns;XH_;u+wLBeRUJjhjcw)Of8I}Hb3}e`L9Y^Kjd)L1KulDkc>u+ zLKLc_AI7sf%%K>=QB9>YNTHoDIByxe$2(ui5mk)2z`|=y_m#2vNC&gyxF( zRK{D`D-RjfctS_;o^FsPfmjuDfC(UhhYG}i4+YUcsyo5?F2|LG$_Plvi6Km5LMTaG zt1|HdQ5!18ujgr-37lUahE{Se*+(GJX$%2tA0n=~O4Je{p~MTxS}miLfcU(quG+Pq zm>9o+)Pg0Gq`YFV|5Or z6}?_Hq6*Q<3avi)Yz>j1E*H>);yisdd26l|n$SE0IIl3ANS^=`Q^Bg?@EBMx6BsXv`sS*Ly-W~2 zl#fA3oofkD>7c4~mU4$-tBQp?hzd|<|Gzw7>ycRfF|di^3aPWShkp+1Jy7o*!u?C( Ze*oBS#@$`k3m5 +#include +#include #include -#include -#include -#include +#include #include +#include +#include +#if QT_VERSION >= 0x050000 +#include +#endif #include #include @@ -61,6 +65,10 @@ #endif #endif +#ifdef Q_OS_WIN +#include +#endif + static QString escape_accel(const QString &s) { @@ -97,22 +105,6 @@ static QString escape_accel(const QString &s) return result; } -/* Hack for creating a QWidget with a "foreign" window ID */ -class ForeignWidget : public QWidget -{ -public: - explicit ForeignWidget(WId wid) : QWidget(0) - { - QWidget::destroy(); - create(wid, false, false); - } - - ~ForeignWidget() - { - destroy(false, false); - } -}; - namespace { class InvalidUtf8 : public std::invalid_argument @@ -139,17 +131,46 @@ static QString from_utf8(const char *s) return result; } +static void +setup_foreground_window(QWidget *widget, WId parentWid) +{ +#if QT_VERSION >= 0x050000 + /* For windows set the desktop window as the transient parent */ + QWindow *parentWindow = nullptr; + if (parentWid) { + parentWindow = QWindow::fromWinId(parentWid); + } +#ifdef Q_OS_WIN + if (!parentWindow) { + HWND desktop = GetDesktopWindow(); + if (desktop) { + parentWindow = QWindow::fromWinId((WId) desktop); + } + } +#endif + if (parentWindow) { + // Ensure that we have a native wid + widget->winId(); + QWindow *wndHandle = widget->windowHandle(); + + if (wndHandle) { + wndHandle->setTransientParent(parentWindow); + } + } +#endif + widget->setWindowFlags(Qt::Window | + Qt::CustomizeWindowHint | + Qt::WindowTitleHint | + Qt::WindowCloseButtonHint | + Qt::WindowStaysOnTopHint | + Qt::WindowMinimizeButtonHint); +} + static int qt_cmd_handler(pinentry_t pe) { - QWidget *parent = 0; char *str; - /* FIXME: Add parent window ID to pinentry and GTK. */ - if (pe->parent_wid) { - parent = new ForeignWidget((WId) pe->parent_wid); - } - int want_pass = !!pe->pin; const QString ok = @@ -180,17 +201,24 @@ qt_cmd_handler(pinentry_t pe) pe->default_tt_hide ? from_utf8(pe->default_tt_hide) : QLatin1String("Hide passphrase"); + const QString generateLbl = pe->genpin_label ? from_utf8(pe->genpin_label) : + QString(); + const QString generateTT = pe->genpin_tt ? from_utf8(pe->genpin_tt) : + QString(); + if (want_pass) { char *str; - PinEntryDialog pinentry(parent, 0, pe->timeout, true, !!pe->quality_bar, + PinEntryDialog pinentry(NULL, 0, pe->timeout, true, !!pe->quality_bar, repeatString, visibilityTT, hideTT); - + setup_foreground_window(&pinentry, pe->parent_wid); pinentry.setPinentryInfo(pe); pinentry.setPrompt(escape_accel(from_utf8(pe->prompt))); pinentry.setDescription(from_utf8(pe->description)); pinentry.setRepeatErrorText(repeatError); + pinentry.setGenpinLabel(generateLbl); + pinentry.setGenpinTT(generateTT); str = pinentry_get_title (pe); if (str) { @@ -247,7 +275,8 @@ qt_cmd_handler(pinentry_t pe) pe->notok ? QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel : /* else */ QMessageBox::Ok | QMessageBox::Cancel ; - PinentryConfirm box(QMessageBox::Information, pe->timeout, title, desc, buttons, parent); + PinentryConfirm box(QMessageBox::Information, pe->timeout, title, desc, buttons, NULL); + setup_foreground_window(&box, pe->parent_wid); const struct { QMessageBox::StandardButton button; @@ -312,6 +341,7 @@ main(int argc, char *argv[]) pinentry_init("pinentry-qt"); QApplication *app = NULL; + int new_argc = 0; #ifdef FALLBACK_CURSES if (!pinentry_have_display(argc, argv)) { @@ -351,8 +381,15 @@ main(int argc, char *argv[]) p += strlen(argv[i]) + 1; } - i = argc; - app = new QApplication(i, new_argv); + /* Note: QApplication uses int &argc so argc has to be valid + * for the full lifetime of the application. + * + * As Qt might modify argc / argv we use copies here so that + * we do not loose options that are handled in both. e.g. display. + */ + new_argc = argc; + Q_ASSERT (new_argc); + app = new QApplication(new_argc, new_argv); app->setWindowIcon(QIcon(QLatin1String(":/document-encrypt.png"))); } diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/pinentry.qrc b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt4/pinentry.qrc similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/pinentry.qrc rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/qt4/pinentry.qrc diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/pinentryconfirm.cpp b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt4/pinentryconfirm.cpp similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/pinentryconfirm.cpp rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/qt4/pinentryconfirm.cpp diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/pinentryconfirm.h b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt4/pinentryconfirm.h similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/pinentryconfirm.h rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/qt4/pinentryconfirm.h diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/pinentrydialog.cpp b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt4/pinentrydialog.cpp similarity index 79% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/pinentrydialog.cpp rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/qt4/pinentrydialog.cpp index cb52d7cf..0c4e3855 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/pinentrydialog.cpp +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt4/pinentrydialog.cpp @@ -26,6 +26,7 @@ #include #include +#include #include #include #include @@ -36,71 +37,28 @@ #include #include #include +#include "pinlineedit.h" + +#include #ifdef Q_OS_WIN #include +#if QT_VERSION >= 0x050700 +#include #endif - -/* I [wk] have no idea for what this code was supposed to do. - Foregrounding a window is heavily restricted by modern Windows - versions. This is the reason why gpg-agent employs its - AllowSetForegroundWindow callback machinery to ask the supposed to - be be calling process to allow a pinentry to go into the - foreground. - - [ah] This is a Hack to workaround the fact that Foregrounding - a Window is so restricted that it AllowSetForegroundWindow - does not always work (e.g. when the ForegroundWindow timeout - has not expired. - */ -#ifdef Q_OS_WIN -WINBOOL SetForegroundWindowEx(HWND hWnd) -{ - //Attach foreground window thread to our thread - const DWORD ForeGroundID = GetWindowThreadProcessId(::GetForegroundWindow(), NULL); - const DWORD CurrentID = GetCurrentThreadId(); - WINBOOL retval; - - AttachThreadInput(ForeGroundID, CurrentID, TRUE); - //Do our stuff here - HWND hLastActivePopupWnd = GetLastActivePopup(hWnd); - retval = SetForegroundWindow(hLastActivePopupWnd); - - //Detach the attached thread - AttachThreadInput(ForeGroundID, CurrentID, FALSE); - return retval; -}// End SetForegroundWindowEx #endif void raiseWindow(QWidget *w) { - /* Maybe Qt will become aggressive enough one day that - * this is enough on windows too*/ - w->raise(); #ifdef Q_OS_WIN - HWND wid = (HWND)w->effectiveWinId(); - /* In the meantime we do our own attention grabbing */ - if (!SetForegroundWindow(wid) && !SetForegroundWindowEx(wid)) { - OutputDebugString("SetForegroundWindow (ex) failed"); - /* Yet another fallback which will not work on some - * versions and is not recommended by msdn */ - if (!ShowWindow(wid, SW_SHOWNORMAL)) { - OutputDebugString("ShowWindow failed."); - } - } - /* Even if SetForgeoundWindow / SetForegroundWinowEx don't fail - * we sometimes are still not in the foreground. So we try yet - * another hack by using SetWindowPos */ - if (!SetWindowPos(wid, HWND_TOPMOST, 0, 0, 0, 0, - SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW)) { - OutputDebugString("SetWindowPos failed."); - } else { - /* Without moving back to NOTOPMOST we just stay on top. - * Even if the user changes focus. */ - SetWindowPos(wid, HWND_NOTOPMOST, 0, 0, 0, 0, - SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW); - } +#if QT_VERSION >= 0x050700 + QWindowsWindowFunctions::setWindowActivationBehavior( + QWindowsWindowFunctions::AlwaysActivateWindow); #endif +#endif + w->setWindowState((w->windowState() & ~Qt::WindowMinimized) | Qt::WindowActive); + w->activateWindow(); + w->raise(); } QPixmap icon(QStyle::StandardPixmap which) @@ -129,16 +87,17 @@ PinEntryDialog::PinEntryDialog(QWidget *parent, const char *name, const QString &repeatString, const QString &visibilityTT, const QString &hideTT) - : QDialog(parent, Qt::WindowStaysOnTopHint), + : QDialog(parent), mRepeat(NULL), _grabbed(false), + _disable_echo_allowed(true), mVisibilityTT(visibilityTT), mHideTT(hideTT), mVisiActionEdit(NULL), + mGenerateActionEdit(NULL), mVisiCB(NULL) { _timed_out = false; - setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); if (modal) { setWindowModality(Qt::ApplicationModal); @@ -159,8 +118,9 @@ PinEntryDialog::PinEntryDialog(QWidget *parent, const char *name, _prompt = new QLabel(this); _prompt->hide(); - _edit = new QLineEdit(this); + _edit = new PinLineEdit(this); _edit->setMaxLength(256); + _edit->setMinimumWidth(_edit->fontMetrics().averageCharWidth()*20 + 48); _edit->setEchoMode(QLineEdit::Password); _prompt->setBuddy(_edit); @@ -201,8 +161,8 @@ PinEntryDialog::PinEntryDialog(QWidget *parent, const char *name, this, SLOT(updateQuality(QString))); connect(_edit, SIGNAL(textChanged(QString)), this, SLOT(textChanged(QString))); - - _edit->setFocus(); + connect(_edit, SIGNAL(backspacePressed()), + this, SLOT(onBackspace())); QGridLayout *const grid = new QGridLayout(this); int row = 1; @@ -231,7 +191,15 @@ PinEntryDialog::PinEntryDialog(QWidget *parent, const char *name, /* Set up the show password action */ const QIcon visibilityIcon = QIcon::fromTheme(QLatin1String("visibility")); const QIcon hideIcon = QIcon::fromTheme(QLatin1String("hint")); + const QIcon generateIcon = QIcon(); /* Disabled for now + QIcon::fromTheme(QLatin1String("password-generate")); */ #if QT_VERSION >= 0x050200 + if (!generateIcon.isNull()) { + mGenerateActionEdit = _edit->addAction(generateIcon, + QLineEdit::LeadingPosition); + mGenerateActionEdit->setToolTip(mGenerateTT); + connect(mGenerateActionEdit, SIGNAL(triggered()), this, SLOT(generatePin())); + } if (!visibilityIcon.isNull() && !hideIcon.isNull()) { mVisiActionEdit = _edit->addAction(visibilityIcon, QLineEdit::TrailingPosition); mVisiActionEdit->setVisible(false); @@ -255,12 +223,29 @@ PinEntryDialog::PinEntryDialog(QWidget *parent, const char *name, connect(qApp, SIGNAL(focusChanged(QWidget *, QWidget *)), this, SLOT(focusChanged(QWidget *, QWidget *))); + +#if QT_VERSION >= 0x050000 + /* This is mostly an issue on Windows where this results + in the pinentry popping up nicely with an animation and + comes to front. It is not ifdefed for Windows only since + window managers on Linux like KWin can also have this + result in an animation when the pinentry is shown and + not just popping it up. + */ + setWindowState(Qt::WindowMinimized); + QTimer::singleShot(0, this, [this] () { + raiseWindow (this); + }); +#else + activateWindow(); + raise(); +#endif } void PinEntryDialog::showEvent(QShowEvent *event) { QDialog::showEvent(event); - raiseWindow(this); + _edit->setFocus(); } void PinEntryDialog::setDescription(const QString &txt) @@ -271,7 +256,7 @@ void PinEntryDialog::setDescription(const QString &txt) _desc->setAccessibleDescription(txt); #endif _icon->setPixmap(icon()); - setError(QString::null); + setError(QString()); } QString PinEntryDialog::description() const @@ -310,6 +295,8 @@ void PinEntryDialog::setPrompt(const QString &txt) { _prompt->setText(txt); _prompt->setVisible(!txt.isEmpty()); + if (txt.contains("PIN")) + _disable_echo_allowed = false; } QString PinEntryDialog::prompt() const @@ -352,6 +339,36 @@ void PinEntryDialog::setQualityBarTT(const QString &txt) } } +void PinEntryDialog::setGenpinLabel(const QString &txt) +{ + if (!mGenerateActionEdit) { + return; + } + if (txt.isEmpty()) { + mGenerateActionEdit->setVisible(false); + } else { + mGenerateActionEdit->setText(txt); + mGenerateActionEdit->setVisible(true); + } +} + +void PinEntryDialog::setGenpinTT(const QString &txt) +{ + if (mGenerateActionEdit) { + mGenerateActionEdit->setToolTip(txt); + } +} + +void PinEntryDialog::onBackspace() +{ + if (_disable_echo_allowed) { + _edit->setEchoMode(QLineEdit::NoEcho); + if (mRepeat) { + mRepeat->setEchoMode(QLineEdit::NoEcho); + } + } +} + void PinEntryDialog::updateQuality(const QString &txt) { int length; @@ -362,6 +379,8 @@ void PinEntryDialog::updateQuality(const QString &txt) _timer->stop(); } + _disable_echo_allowed = false; + if (!_have_quality_bar || !_pinentry_info) { return; } @@ -420,11 +439,28 @@ void PinEntryDialog::textChanged(const QString &text) if (mVisiActionEdit && sender() == _edit) { mVisiActionEdit->setVisible(!_edit->text().isEmpty()); } + if (mGenerateActionEdit) { + mGenerateActionEdit->setVisible(_edit->text().isEmpty() && + _pinentry_info->genpin_label); + } +} + +void PinEntryDialog::generatePin() +{ + const char *pin = pinentry_inq_genpin(_pinentry_info); + if (pin) { + if (_edit->echoMode() == QLineEdit::Password) { + toggleVisibility(); + } + const QString pinStr = QString::fromUtf8(pin); + _edit->setText(pinStr); + mRepeat->setText(pinStr); + } } void PinEntryDialog::toggleVisibility() { - if (sender() == mVisiActionEdit) { + if (sender() != mVisiCB) { if (_edit->echoMode() == QLineEdit::Password) { mVisiActionEdit->setIcon(QIcon::fromTheme(QLatin1String("hint"))); mVisiActionEdit->setToolTip(mHideTT); @@ -440,8 +476,7 @@ void PinEntryDialog::toggleVisibility() mRepeat->setEchoMode(QLineEdit::Password); } } - } - if (sender() == mVisiCB) { + } else { if (mVisiCB->isChecked()) { if (mRepeat) { mRepeat->setEchoMode(QLineEdit::Normal); diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/pinentrydialog.h b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt4/pinentrydialog.h similarity index 91% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/pinentrydialog.h rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/qt4/pinentrydialog.h index 52b7343b..45671b95 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/pinentrydialog.h +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt4/pinentrydialog.h @@ -33,6 +33,7 @@ class QLabel; class QPushButton; class QLineEdit; +class PinLineEdit; class QString; class QProgressBar; class QCheckBox; @@ -79,6 +80,9 @@ public: void setQualityBar(const QString &); void setQualityBarTT(const QString &); + void setGenpinLabel(const QString &); + void setGenpinTT(const QString &); + void setPinentryInfo(pinentry_t); bool timedOut() const; @@ -89,6 +93,8 @@ protected slots: void textChanged(const QString &); void focusChanged(QWidget *old, QWidget *now); void toggleVisibility(); + void onBackspace(); + void generatePin(); protected: /* reimp */ void showEvent(QShowEvent *event); @@ -100,19 +106,22 @@ private: QLabel *_prompt; QLabel *_quality_bar_label; QProgressBar *_quality_bar; - QLineEdit *_edit; - QLineEdit *mRepeat; + PinLineEdit *_edit; + QLineEdit *mRepeat; QPushButton *_ok; QPushButton *_cancel; bool _grabbed; bool _have_quality_bar; bool _timed_out; + bool _disable_echo_allowed; pinentry_t _pinentry_info; QTimer *_timer; QString mRepeatError, mVisibilityTT, + mGenerateTT, mHideTT; - QAction *mVisiActionEdit; + QAction *mVisiActionEdit, + *mGenerateActionEdit; QCheckBox *mVisiCB; }; diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt4/pinlineedit.cpp b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt4/pinlineedit.cpp new file mode 100644 index 00000000..b05bd07b --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt4/pinlineedit.cpp @@ -0,0 +1,36 @@ +/* pinlineedit.cpp - Modified QLineEdit widget. + * Copyright (C) 2018 Damien Goutte-Gattat + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include "pinlineedit.h" + +#include + +PinLineEdit::PinLineEdit(QWidget *parent) : QLineEdit(parent) +{ +} + +void +PinLineEdit::keyPressEvent(QKeyEvent *e) +{ + QLineEdit::keyPressEvent(e); + + if ( e->key() == Qt::Key_Backspace ) + emit backspacePressed(); +} + +#include "pinlineedit.moc" diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt4/pinlineedit.h b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt4/pinlineedit.h new file mode 100644 index 00000000..b1b48dfd --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt4/pinlineedit.h @@ -0,0 +1,38 @@ +/* pinlineedit.h - Modified QLineEdit widget. + * Copyright (C) 2018 Damien Goutte-Gattat + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifndef _PINLINEEDIT_H_ +#define _PINLINEEDIT_H_ + +#include + +class PinLineEdit : public QLineEdit +{ + Q_OBJECT + +public: + PinLineEdit(QWidget *); + +signals: + void backspacePressed(); + +protected: + void keyPressEvent(QKeyEvent *); +}; + +#endif // _PINLINEEDIT_H_ diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/qrc_pinentry.cpp b/debian/pinentry-tqt/pinentry-tqt-1.2.1/qt4/qrc_pinentry.cpp similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/qt/qrc_pinentry.cpp rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/qt4/qrc_pinentry.cpp diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/secmem/Makefile.am b/debian/pinentry-tqt/pinentry-tqt-1.2.1/secmem/Makefile.am similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/secmem/Makefile.am rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/secmem/Makefile.am diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/secmem/Makefile.in b/debian/pinentry-tqt/pinentry-tqt-1.2.1/secmem/Makefile.in similarity index 87% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/secmem/Makefile.in rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/secmem/Makefile.in index 4d4f67a0..333ab946 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/secmem/Makefile.in +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/secmem/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -34,7 +34,17 @@ # SPDX-License-Identifier: GPL-2.0+ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -98,16 +108,15 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = secmem -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/build-aux/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/curses.m4 \ $(top_srcdir)/m4/gpg-error.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/libassuan.m4 $(top_srcdir)/m4/pkg.m4 \ - $(top_srcdir)/m4/qt.m4 $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/qt4.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -137,7 +146,8 @@ am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__depfiles_maybe = depfiles +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/secmem.Po ./$(DEPDIR)/util.Po am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -177,6 +187,8 @@ am__define_uniq_tagged_files = \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -201,6 +213,8 @@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ +EFL_CFLAGS = @EFL_CFLAGS@ +EFL_LIBS = @EFL_LIBS@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FLTKCFLAGS = @FLTKCFLAGS@ @@ -210,6 +224,7 @@ FLTK_CONFIG = @FLTK_CONFIG@ GITLOG_TO_CHANGELOG = @GITLOG_TO_CHANGELOG@ GNOME3_CFLAGS = @GNOME3_CFLAGS@ GNOME3_LIBS = @GNOME3_LIBS@ +GPGRT_CONFIG = @GPGRT_CONFIG@ GPG_ERROR_CFLAGS = @GPG_ERROR_CFLAGS@ GPG_ERROR_CONFIG = @GPG_ERROR_CONFIG@ GPG_ERROR_LIBS = @GPG_ERROR_LIBS@ @@ -223,11 +238,12 @@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KF5WAYLANDCLIENT_CFLAGS = @KF5WAYLANDCLIENT_CFLAGS@ +KF5WAYLANDCLIENT_LIBS = @KF5WAYLANDCLIENT_LIBS@ LDFLAGS = @LDFLAGS@ LIBASSUAN_CFLAGS = @LIBASSUAN_CFLAGS@ LIBASSUAN_CONFIG = @LIBASSUAN_CONFIG@ LIBASSUAN_LIBS = @LIBASSUAN_LIBS@ -LIBCAP = @LIBCAP@ LIBCURSES = @LIBCURSES@ LIBICONV = @LIBICONV@ LIBNCURSES = @LIBNCURSES@ @@ -236,6 +252,8 @@ LIBS = @LIBS@ LIBSECRET_CFLAGS = @LIBSECRET_CFLAGS@ LIBSECRET_LIBS = @LIBSECRET_LIBS@ LIBTERMCAP = @LIBTERMCAP@ +LIBX11_CFLAGS = @LIBX11_CFLAGS@ +LIBX11_LIBS = @LIBX11_LIBS@ LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ @@ -244,6 +262,8 @@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ MOC2 = @MOC2@ +MOC4 = @MOC4@ +MOC42 = @MOC42@ NCURSES_CFLAGS = @NCURSES_CFLAGS@ NCURSES_INCLUDE = @NCURSES_INCLUDE@ NCURSES_LIBS = @NCURSES_LIBS@ @@ -257,16 +277,23 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PINENTRY_DEFAULT = @PINENTRY_DEFAULT@ +PINENTRY_QT4_CFLAGS = @PINENTRY_QT4_CFLAGS@ +PINENTRY_QT4_LDFLAGS = @PINENTRY_QT4_LDFLAGS@ +PINENTRY_QT4_LIBS = @PINENTRY_QT4_LIBS@ PINENTRY_QT_CFLAGS = @PINENTRY_QT_CFLAGS@ +PINENTRY_QT_LDFLAGS = @PINENTRY_QT_LDFLAGS@ PINENTRY_QT_LIBS = @PINENTRY_QT_LIBS@ PINENTRY_QT_REQUIRE_CPP11_CFLAGS = @PINENTRY_QT_REQUIRE_CPP11_CFLAGS@ PINENTRY_QT_REQUIRE_CPP11_LIBS = @PINENTRY_QT_REQUIRE_CPP11_LIBS@ +PINENTRY_QT_X11_EXTRAS_CFLAGS = @PINENTRY_QT_X11_EXTRAS_CFLAGS@ +PINENTRY_QT_X11_EXTRAS_LIBS = @PINENTRY_QT_X11_EXTRAS_LIBS@ PINENTRY_TQT_CFLAGS = @PINENTRY_TQT_CFLAGS@ PINENTRY_TQT_LIBS = @PINENTRY_TQT_LIBS@ PKG_CONFIG = @PKG_CONFIG@ QTCHOOSER = @QTCHOOSER@ RANLIB = @RANLIB@ -SETCAP = @SETCAP@ +RCC = @RCC@ +RCC2 = @RCC2@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ @@ -316,6 +343,7 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -349,14 +377,13 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu secmem/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu secmem/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -382,8 +409,14 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/secmem.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/secmem.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -451,7 +484,10 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -520,7 +556,8 @@ clean: clean-am clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am distclean: distclean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/secmem.Po + -rm -f ./$(DEPDIR)/util.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -566,7 +603,8 @@ install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/secmem.Po + -rm -f ./$(DEPDIR)/util.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -586,18 +624,20 @@ uninstall-am: .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ - clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \ - distclean-compile distclean-generic distclean-tags distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ - uninstall-am +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ + clean-generic clean-noinstLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/secmem/memory.h b/debian/pinentry-tqt/pinentry-tqt-1.2.1/secmem/memory.h similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/secmem/memory.h rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/secmem/memory.h diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/secmem/secmem++.h b/debian/pinentry-tqt/pinentry-tqt-1.2.1/secmem/secmem++.h similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/secmem/secmem++.h rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/secmem/secmem++.h diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/secmem/secmem-util.h b/debian/pinentry-tqt/pinentry-tqt-1.2.1/secmem/secmem-util.h similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/secmem/secmem-util.h rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/secmem/secmem-util.h diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/secmem/secmem.c b/debian/pinentry-tqt/pinentry-tqt-1.2.1/secmem/secmem.c similarity index 91% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/secmem/secmem.c rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/secmem/secmem.c index 3abcc4a2..a12f0b3c 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/secmem/secmem.c +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/secmem/secmem.c @@ -31,9 +31,6 @@ # include # include # include -# ifdef USE_CAPABILITIES -# include -# endif #endif #include @@ -51,7 +48,7 @@ typedef union { short b; char c[1]; long d; -#ifdef HAVE_U64_TYPEDEF +#ifdef HAVE_U64_TYPE u64 e; #endif float f; @@ -103,7 +100,9 @@ struct memblock_struct { static void *pool; static volatile int pool_okay; /* may be checked in an atexit function */ +#if HAVE_MMAP static int pool_is_mmapped; +#endif static size_t poolsize; /* allocated length */ static size_t poollen; /* used length */ static MEMBLOCK *unused_blocks; @@ -128,26 +127,7 @@ print_warn(void) static void lock_pool( void *p, size_t n ) { -#if defined(USE_CAPABILITIES) && defined(HAVE_MLOCK) - int err; - - cap_set_proc( cap_from_text("cap_ipc_lock+ep") ); - err = mlock( p, n ); - if( err && errno ) - err = errno; - cap_set_proc( cap_from_text("cap_ipc_lock+p") ); - - if( err ) { - if( errno != EPERM - #ifdef EAGAIN /* OpenBSD returns this */ - && errno != EAGAIN - #endif - ) - log_error("can't lock memory: %s\n", strerror(err)); - show_warning = 1; - } - -#elif defined(HAVE_MLOCK) +#if defined(HAVE_MLOCK) uid_t uid; int err; @@ -156,17 +136,13 @@ lock_pool( void *p, size_t n ) #ifdef HAVE_BROKEN_MLOCK if( uid ) { errno = EPERM; - err = errno; + err = -1; } else { err = mlock( p, n ); - if( err && errno ) - err = errno; } #else err = mlock( p, n ); - if( err && errno ) - err = errno; #endif if( uid && !geteuid() ) { @@ -180,11 +156,13 @@ lock_pool( void *p, size_t n ) && errno != EAGAIN #endif ) - log_error("can't lock memory: %s\n", strerror(err)); + log_error("can't lock memory: %s\n", strerror(errno)); show_warning = 1; } #else + (void)p; + (void)n; log_info("Please note that you don't have secure memory on this system\n"); #endif } @@ -193,20 +171,22 @@ lock_pool( void *p, size_t n ) static void init_pool( size_t n) { +#if HAVE_MMAP size_t pgsize; +#endif poolsize = n; if( disable_secmem ) log_bug("secure memory is disabled"); +#if HAVE_MMAP #ifdef HAVE_GETPAGESIZE pgsize = getpagesize(); #else pgsize = 4096; #endif -#if HAVE_MMAP poolsize = (poolsize + pgsize -1 ) & ~(pgsize-1); # ifdef MAP_ANONYMOUS pool = mmap( 0, poolsize, PROT_READ|PROT_WRITE, @@ -284,11 +264,7 @@ void secmem_init( size_t n ) { if( !n ) { -#ifdef USE_CAPABILITIES - /* drop all capabilities */ - cap_set_proc( cap_from_text("all-eip") ); - -#elif !defined(HAVE_DOSISH_SYSTEM) +#if !defined(HAVE_DOSISH_SYSTEM) uid_t uid; disable_secmem=1; diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/secmem/util.c b/debian/pinentry-tqt/pinentry-tqt-1.2.1/secmem/util.c similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/secmem/util.c rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/secmem/util.c diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/secmem/util.h b/debian/pinentry-tqt/pinentry-tqt-1.2.1/secmem/util.h similarity index 86% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/secmem/util.h rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/secmem/util.h index 233ab131..3c8ffb8a 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/secmem/util.h +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/secmem/util.h @@ -22,21 +22,20 @@ #include -#ifndef HAVE_BYTE_TYPEDEF +#ifndef HAVE_TYPE_BYTE # undef byte -# ifdef __riscos__ - /* Norcroft treats char == unsigned char but char* != unsigned char* */ - typedef char byte; -# else - typedef unsigned char byte; +# if !(defined(_WIN32) && defined(cbNDRContext)) + /* Windows typedefs byte in the rpc headers. Avoid warning about + double definition. */ + typedef unsigned char byte; # endif -# define HAVE_BYTE_TYPEDEF +# define HAVE_TYPE_BYTE #endif -#ifndef HAVE_ULONG_TYPEDEF +#ifndef HAVE_TYPE_ULONG # undef ulong typedef unsigned long ulong; -# define HAVE_ULONG_TYPEDEF +# define HAVE_TYPE_ULONG #endif diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/tqt/Makefile.am b/debian/pinentry-tqt/pinentry-tqt-1.2.1/tqt/Makefile.am similarity index 95% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/tqt/Makefile.am rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/tqt/Makefile.am index ec825229..3252bf74 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/tqt/Makefile.am +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/tqt/Makefile.am @@ -38,10 +38,12 @@ AM_CPPFLAGS = $(COMMON_CFLAGS) \ AM_CXXFLAGS = $(PINENTRY_TQT_CFLAGS) pinentry_tqt_LDADD = \ ../pinentry/libpinentry.a $(top_builddir)/secmem/libsecmem.a \ - $(COMMON_LIBS) $(PINENTRY_TQT_LIBS) $(libcurses) $(LIBCAP) + $(COMMON_LIBS) $(PINENTRY_TQT_LIBS) $(libcurses) +if BUILD_PINENTRY_TQT BUILT_SOURCES = \ secqlineedit.moc pinentrydialog.moc +endif CLEANFILES = \ secqlineedit.moc pinentrydialog.moc diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/tqt/Makefile.in b/debian/pinentry-tqt/pinentry-tqt-1.2.1/tqt/Makefile.in similarity index 89% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/tqt/Makefile.in rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/tqt/Makefile.in index e0258b04..ee534a28 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/tqt/Makefile.in +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/tqt/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -35,7 +35,17 @@ # SPDX-License-Identifier: GPL-2.0+ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -100,16 +110,15 @@ build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = pinentry-tqt$(EXEEXT) subdir = tqt -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/build-aux/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/curses.m4 \ $(top_srcdir)/m4/gpg-error.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/libassuan.m4 $(top_srcdir)/m4/pkg.m4 \ - $(top_srcdir)/m4/qt.m4 $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/qt4.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -129,8 +138,7 @@ am__DEPENDENCIES_1 = @FALLBACK_CURSES_TRUE@ $(am__DEPENDENCIES_1) pinentry_tqt_DEPENDENCIES = ../pinentry/libpinentry.a \ $(top_builddir)/secmem/libsecmem.a $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \ - $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -145,7 +153,10 @@ am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__depfiles_maybe = depfiles +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/main.Po \ + ./$(DEPDIR)/pinentrydialog.Po ./$(DEPDIR)/secqinternal.Po \ + ./$(DEPDIR)/secqlineedit.Po ./$(DEPDIR)/secqstring.Po am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) @@ -198,6 +209,8 @@ am__define_uniq_tagged_files = \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -222,6 +235,8 @@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ +EFL_CFLAGS = @EFL_CFLAGS@ +EFL_LIBS = @EFL_LIBS@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FLTKCFLAGS = @FLTKCFLAGS@ @@ -231,6 +246,7 @@ FLTK_CONFIG = @FLTK_CONFIG@ GITLOG_TO_CHANGELOG = @GITLOG_TO_CHANGELOG@ GNOME3_CFLAGS = @GNOME3_CFLAGS@ GNOME3_LIBS = @GNOME3_LIBS@ +GPGRT_CONFIG = @GPGRT_CONFIG@ GPG_ERROR_CFLAGS = @GPG_ERROR_CFLAGS@ GPG_ERROR_CONFIG = @GPG_ERROR_CONFIG@ GPG_ERROR_LIBS = @GPG_ERROR_LIBS@ @@ -244,11 +260,12 @@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KF5WAYLANDCLIENT_CFLAGS = @KF5WAYLANDCLIENT_CFLAGS@ +KF5WAYLANDCLIENT_LIBS = @KF5WAYLANDCLIENT_LIBS@ LDFLAGS = @LDFLAGS@ LIBASSUAN_CFLAGS = @LIBASSUAN_CFLAGS@ LIBASSUAN_CONFIG = @LIBASSUAN_CONFIG@ LIBASSUAN_LIBS = @LIBASSUAN_LIBS@ -LIBCAP = @LIBCAP@ LIBCURSES = @LIBCURSES@ LIBICONV = @LIBICONV@ LIBNCURSES = @LIBNCURSES@ @@ -257,6 +274,8 @@ LIBS = @LIBS@ LIBSECRET_CFLAGS = @LIBSECRET_CFLAGS@ LIBSECRET_LIBS = @LIBSECRET_LIBS@ LIBTERMCAP = @LIBTERMCAP@ +LIBX11_CFLAGS = @LIBX11_CFLAGS@ +LIBX11_LIBS = @LIBX11_LIBS@ LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ @@ -265,6 +284,8 @@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ MOC2 = @MOC2@ +MOC4 = @MOC4@ +MOC42 = @MOC42@ NCURSES_CFLAGS = @NCURSES_CFLAGS@ NCURSES_INCLUDE = @NCURSES_INCLUDE@ NCURSES_LIBS = @NCURSES_LIBS@ @@ -278,16 +299,23 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PINENTRY_DEFAULT = @PINENTRY_DEFAULT@ +PINENTRY_QT4_CFLAGS = @PINENTRY_QT4_CFLAGS@ +PINENTRY_QT4_LDFLAGS = @PINENTRY_QT4_LDFLAGS@ +PINENTRY_QT4_LIBS = @PINENTRY_QT4_LIBS@ PINENTRY_QT_CFLAGS = @PINENTRY_QT_CFLAGS@ +PINENTRY_QT_LDFLAGS = @PINENTRY_QT_LDFLAGS@ PINENTRY_QT_LIBS = @PINENTRY_QT_LIBS@ PINENTRY_QT_REQUIRE_CPP11_CFLAGS = @PINENTRY_QT_REQUIRE_CPP11_CFLAGS@ PINENTRY_QT_REQUIRE_CPP11_LIBS = @PINENTRY_QT_REQUIRE_CPP11_LIBS@ +PINENTRY_QT_X11_EXTRAS_CFLAGS = @PINENTRY_QT_X11_EXTRAS_CFLAGS@ +PINENTRY_QT_X11_EXTRAS_LIBS = @PINENTRY_QT_X11_EXTRAS_LIBS@ PINENTRY_TQT_CFLAGS = @PINENTRY_TQT_CFLAGS@ PINENTRY_TQT_LIBS = @PINENTRY_TQT_LIBS@ PKG_CONFIG = @PKG_CONFIG@ QTCHOOSER = @QTCHOOSER@ RANLIB = @RANLIB@ -SETCAP = @SETCAP@ +RCC = @RCC@ +RCC2 = @RCC2@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ @@ -337,6 +365,7 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -356,10 +385,10 @@ AM_CPPFLAGS = $(COMMON_CFLAGS) \ AM_CXXFLAGS = $(PINENTRY_TQT_CFLAGS) pinentry_tqt_LDADD = \ ../pinentry/libpinentry.a $(top_builddir)/secmem/libsecmem.a \ - $(COMMON_LIBS) $(PINENTRY_TQT_LIBS) $(libcurses) $(LIBCAP) + $(COMMON_LIBS) $(PINENTRY_TQT_LIBS) $(libcurses) -BUILT_SOURCES = \ - secqlineedit.moc pinentrydialog.moc +@BUILD_PINENTRY_TQT_TRUE@BUILT_SOURCES = \ +@BUILD_PINENTRY_TQT_TRUE@ secqlineedit.moc pinentrydialog.moc CLEANFILES = \ secqlineedit.moc pinentrydialog.moc @@ -389,14 +418,13 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tqt/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu tqt/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -460,11 +488,17 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pinentrydialog.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/secqinternal.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/secqlineedit.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/secqstring.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pinentrydialog.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/secqinternal.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/secqlineedit.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/secqstring.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) .cpp.o: @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -532,7 +566,10 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -572,7 +609,8 @@ installdirs: done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am -install-exec: install-exec-am +install-exec: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data: install-data-am uninstall: uninstall-am @@ -608,7 +646,11 @@ clean: clean-am clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/main.Po + -rm -f ./$(DEPDIR)/pinentrydialog.Po + -rm -f ./$(DEPDIR)/secqinternal.Po + -rm -f ./$(DEPDIR)/secqlineedit.Po + -rm -f ./$(DEPDIR)/secqstring.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -654,7 +696,11 @@ install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/main.Po + -rm -f ./$(DEPDIR)/pinentrydialog.Po + -rm -f ./$(DEPDIR)/secqinternal.Po + -rm -f ./$(DEPDIR)/secqlineedit.Po + -rm -f ./$(DEPDIR)/secqstring.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -672,9 +718,9 @@ ps-am: uninstall-am: uninstall-binPROGRAMS -.MAKE: all check install install-am install-strip +.MAKE: all check install install-am install-exec install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ distclean distclean-compile distclean-generic distclean-tags \ distdir dvi dvi-am html html-am info info-am install \ @@ -688,6 +734,8 @@ uninstall-am: uninstall-binPROGRAMS ps ps-am tags tags-am uninstall uninstall-am \ uninstall-binPROGRAMS +.PRECIOUS: Makefile + .h.moc: $(TQT_MOC) `test -f '$<' || echo '$(srcdir)/'`$< -o $@ diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/tqt/main.cpp b/debian/pinentry-tqt/pinentry-tqt-1.2.1/tqt/main.cpp similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/tqt/main.cpp rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/tqt/main.cpp diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/tqt/pinentrydialog.cpp b/debian/pinentry-tqt/pinentry-tqt-1.2.1/tqt/pinentrydialog.cpp similarity index 94% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/tqt/pinentrydialog.cpp rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/tqt/pinentrydialog.cpp index 069eeafb..b7aa309b 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/tqt/pinentrydialog.cpp +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/tqt/pinentrydialog.cpp @@ -32,7 +32,8 @@ PinEntryDialog::PinEntryDialog( TQWidget* parent, const char* name, bool modal, bool enable_quality_bar ) - : TQDialog( parent, name, modal, TQt::WStyle_StaysOnTop ), _grabbed( false ) + : TQDialog( parent, name, modal, TQt::WStyle_StaysOnTop ), _grabbed( false ), + _disable_echo_allowed ( true ) { TQBoxLayout* top = new TQVBoxLayout( this, 6 ); TQBoxLayout* upperLayout = new TQHBoxLayout( top ); @@ -89,6 +90,8 @@ PinEntryDialog::PinEntryDialog( TQWidget* parent, const char* name, this, SIGNAL( rejected() ) ); connect( _edit, SIGNAL( textModified(const SecTQString&) ), this, SLOT( updateQuality(const SecTQString&) ) ); + connect (_edit, SIGNAL (backspacePressed()), + this, SLOT (onBackspace ())); connect (this, SIGNAL (accepted ()), this, SLOT (accept ())); connect (this, SIGNAL (rejected ()), @@ -131,6 +134,8 @@ void PinEntryDialog::updateQuality( const SecTQString & txt ) int percent; TQPalette pal; + _disable_echo_allowed = false; + if (!_have_quality_bar || !_pinentry_info) return; pin = (char*)txt.utf8(); @@ -159,6 +164,13 @@ void PinEntryDialog::updateQuality( const SecTQString & txt ) } +void PinEntryDialog::onBackspace() +{ + if (_disable_echo_allowed) + _edit->setEchoMode( SecTQLineEdit::NoEcho ); +} + + void PinEntryDialog::setDescription( const TQString& txt ) { _desc->setText( txt ); @@ -196,6 +208,8 @@ SecTQString PinEntryDialog::text() const void PinEntryDialog::setPrompt( const TQString& txt ) { _prompt->setText( txt ); + if (txt.contains("PIN")) + _disable_echo_allowed = false; } TQString PinEntryDialog::prompt() const diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/tqt/pinentrydialog.h b/debian/pinentry-tqt/pinentry-tqt-1.2.1/tqt/pinentrydialog.h similarity index 96% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/tqt/pinentrydialog.h rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/tqt/pinentrydialog.h index 8e901db2..8ec3fd5c 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/tqt/pinentrydialog.h +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/tqt/pinentrydialog.h @@ -1,5 +1,5 @@ /* pinentrydialog.h - A secure KDE dialog for PIN entry. - * Copyright (C) 2002 Klarälvdalens Datakonsult AB + * Copyright (C) 2002 Klarälvdalens Datakonsult AB * Written by Steffen Hansen . * * This program is free software; you can redistribute it and/or @@ -63,6 +63,7 @@ public: public slots: void updateQuality(const SecTQString &); + void onBackspace(); signals: void accepted(); @@ -86,6 +87,7 @@ private: bool _grabbed; bool _have_quality_bar; pinentry_t _pinentry_info; + bool _disable_echo_allowed; }; diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/tqt/secqinternal.cpp b/debian/pinentry-tqt/pinentry-tqt-1.2.1/tqt/secqinternal.cpp similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/tqt/secqinternal.cpp rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/tqt/secqinternal.cpp diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/tqt/secqinternal_p.h b/debian/pinentry-tqt/pinentry-tqt-1.2.1/tqt/secqinternal_p.h similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/tqt/secqinternal_p.h rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/tqt/secqinternal_p.h diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/tqt/secqlineedit.cpp b/debian/pinentry-tqt/pinentry-tqt-1.2.1/tqt/secqlineedit.cpp similarity index 99% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/tqt/secqlineedit.cpp rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/tqt/secqlineedit.cpp index ee95c8dd..da0637a5 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/tqt/secqlineedit.cpp +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/tqt/secqlineedit.cpp @@ -719,6 +719,8 @@ void SecTQLineEdit::backspace() d->del( TRUE ); } d->finishChange( priorState ); + + emit backspacePressed(); } /*! diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/tqt/secqlineedit.h b/debian/pinentry-tqt/pinentry-tqt-1.2.1/tqt/secqlineedit.h similarity index 99% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/tqt/secqlineedit.h rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/tqt/secqlineedit.h index bd28cecd..126f2314 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/tqt/secqlineedit.h +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/tqt/secqlineedit.h @@ -187,6 +187,7 @@ signals: void returnPressed(); void lostFocus(); void selectionChanged(); + void backspacePressed(); protected: bool event( TQEvent * ); diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/tqt/secqstring.cpp b/debian/pinentry-tqt/pinentry-tqt-1.2.1/tqt/secqstring.cpp similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/tqt/secqstring.cpp rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/tqt/secqstring.cpp diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/tqt/secqstring.h b/debian/pinentry-tqt/pinentry-tqt-1.2.1/tqt/secqstring.h similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/tqt/secqstring.h rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/tqt/secqstring.h diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/tty/Makefile.am b/debian/pinentry-tqt/pinentry-tqt-1.2.1/tty/Makefile.am similarity index 96% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/tty/Makefile.am rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/tty/Makefile.am index 7844bcbb..260ee390 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/tty/Makefile.am +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/tty/Makefile.am @@ -23,6 +23,6 @@ bin_PROGRAMS = pinentry-tty AM_CPPFLAGS = $(COMMON_CFLAGS) -I$(top_srcdir)/secmem -I$(top_srcdir)/pinentry LDADD = ../pinentry/libpinentry.a ../secmem/libsecmem.a \ - $(COMMON_LIBS) $(LIBCAP) $(LIBICONV) + $(COMMON_LIBS) $(LIBICONV) pinentry_tty_SOURCES = pinentry-tty.c diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/tty/Makefile.in b/debian/pinentry-tqt/pinentry-tqt-1.2.1/tty/Makefile.in similarity index 91% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/tty/Makefile.in rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/tty/Makefile.in index e2ff3d4b..2bb778f5 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/tty/Makefile.in +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/tty/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -34,7 +34,17 @@ # SPDX-License-Identifier: GPL-2.0+ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -99,16 +109,15 @@ build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = pinentry-tty$(EXEEXT) subdir = tty -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/build-aux/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/curses.m4 \ $(top_srcdir)/m4/gpg-error.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/libassuan.m4 $(top_srcdir)/m4/pkg.m4 \ - $(top_srcdir)/m4/qt.m4 $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/qt4.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -121,7 +130,7 @@ pinentry_tty_LDADD = $(LDADD) am__DEPENDENCIES_1 = pinentry_tty_DEPENDENCIES = ../pinentry/libpinentry.a \ ../secmem/libsecmem.a $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -136,7 +145,8 @@ am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__depfiles_maybe = depfiles +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/pinentry-tty.Po am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -176,6 +186,8 @@ am__define_uniq_tagged_files = \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -200,6 +212,8 @@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ +EFL_CFLAGS = @EFL_CFLAGS@ +EFL_LIBS = @EFL_LIBS@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FLTKCFLAGS = @FLTKCFLAGS@ @@ -209,6 +223,7 @@ FLTK_CONFIG = @FLTK_CONFIG@ GITLOG_TO_CHANGELOG = @GITLOG_TO_CHANGELOG@ GNOME3_CFLAGS = @GNOME3_CFLAGS@ GNOME3_LIBS = @GNOME3_LIBS@ +GPGRT_CONFIG = @GPGRT_CONFIG@ GPG_ERROR_CFLAGS = @GPG_ERROR_CFLAGS@ GPG_ERROR_CONFIG = @GPG_ERROR_CONFIG@ GPG_ERROR_LIBS = @GPG_ERROR_LIBS@ @@ -222,11 +237,12 @@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KF5WAYLANDCLIENT_CFLAGS = @KF5WAYLANDCLIENT_CFLAGS@ +KF5WAYLANDCLIENT_LIBS = @KF5WAYLANDCLIENT_LIBS@ LDFLAGS = @LDFLAGS@ LIBASSUAN_CFLAGS = @LIBASSUAN_CFLAGS@ LIBASSUAN_CONFIG = @LIBASSUAN_CONFIG@ LIBASSUAN_LIBS = @LIBASSUAN_LIBS@ -LIBCAP = @LIBCAP@ LIBCURSES = @LIBCURSES@ LIBICONV = @LIBICONV@ LIBNCURSES = @LIBNCURSES@ @@ -235,6 +251,8 @@ LIBS = @LIBS@ LIBSECRET_CFLAGS = @LIBSECRET_CFLAGS@ LIBSECRET_LIBS = @LIBSECRET_LIBS@ LIBTERMCAP = @LIBTERMCAP@ +LIBX11_CFLAGS = @LIBX11_CFLAGS@ +LIBX11_LIBS = @LIBX11_LIBS@ LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ @@ -243,6 +261,8 @@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ MOC2 = @MOC2@ +MOC4 = @MOC4@ +MOC42 = @MOC42@ NCURSES_CFLAGS = @NCURSES_CFLAGS@ NCURSES_INCLUDE = @NCURSES_INCLUDE@ NCURSES_LIBS = @NCURSES_LIBS@ @@ -256,16 +276,23 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PINENTRY_DEFAULT = @PINENTRY_DEFAULT@ +PINENTRY_QT4_CFLAGS = @PINENTRY_QT4_CFLAGS@ +PINENTRY_QT4_LDFLAGS = @PINENTRY_QT4_LDFLAGS@ +PINENTRY_QT4_LIBS = @PINENTRY_QT4_LIBS@ PINENTRY_QT_CFLAGS = @PINENTRY_QT_CFLAGS@ +PINENTRY_QT_LDFLAGS = @PINENTRY_QT_LDFLAGS@ PINENTRY_QT_LIBS = @PINENTRY_QT_LIBS@ PINENTRY_QT_REQUIRE_CPP11_CFLAGS = @PINENTRY_QT_REQUIRE_CPP11_CFLAGS@ PINENTRY_QT_REQUIRE_CPP11_LIBS = @PINENTRY_QT_REQUIRE_CPP11_LIBS@ +PINENTRY_QT_X11_EXTRAS_CFLAGS = @PINENTRY_QT_X11_EXTRAS_CFLAGS@ +PINENTRY_QT_X11_EXTRAS_LIBS = @PINENTRY_QT_X11_EXTRAS_LIBS@ PINENTRY_TQT_CFLAGS = @PINENTRY_TQT_CFLAGS@ PINENTRY_TQT_LIBS = @PINENTRY_TQT_LIBS@ PKG_CONFIG = @PKG_CONFIG@ QTCHOOSER = @QTCHOOSER@ RANLIB = @RANLIB@ -SETCAP = @SETCAP@ +RCC = @RCC@ +RCC2 = @RCC2@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ @@ -315,6 +342,7 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -325,7 +353,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CPPFLAGS = $(COMMON_CFLAGS) -I$(top_srcdir)/secmem -I$(top_srcdir)/pinentry LDADD = ../pinentry/libpinentry.a ../secmem/libsecmem.a \ - $(COMMON_LIBS) $(LIBCAP) $(LIBICONV) + $(COMMON_LIBS) $(LIBICONV) pinentry_tty_SOURCES = pinentry-tty.c all: all-am @@ -344,14 +372,13 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tty/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu tty/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -415,7 +442,13 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pinentry-tty.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pinentry-tty.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -483,7 +516,10 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -555,7 +591,7 @@ clean: clean-am clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/pinentry-tty.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -601,7 +637,7 @@ install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/pinentry-tty.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -621,7 +657,7 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ distclean distclean-compile distclean-generic distclean-tags \ distdir dvi dvi-am html html-am info info-am install \ @@ -635,6 +671,8 @@ uninstall-am: uninstall-binPROGRAMS ps ps-am tags tags-am uninstall uninstall-am \ uninstall-binPROGRAMS +.PRECIOUS: Makefile + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/tty/pinentry-tty.c b/debian/pinentry-tqt/pinentry-tqt-1.2.1/tty/pinentry-tty.c similarity index 79% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/tty/pinentry-tty.c rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/tty/pinentry-tty.c index 700b0f1e..c4d85c60 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/tty/pinentry-tty.c +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/tty/pinentry-tty.c @@ -51,14 +51,32 @@ static struct termios n_term; static struct termios o_term; static int -cbreak (int fd) +terminal_save (int fd) { - if ((tcgetattr(fd, &o_term)) == -1) + if ((tcgetattr (fd, &o_term)) == -1) return -1; + return 0; +} + +static void +terminal_restore (int fd) +{ + tcsetattr (fd, TCSANOW, &o_term); +} + +static int +terminal_setup (int fd, int line_edit) +{ n_term = o_term; - n_term.c_lflag = n_term.c_lflag & ~(ECHO|ICANON); - n_term.c_cc[VMIN] = 1; - n_term.c_cc[VTIME]= 0; + if (line_edit) + n_term.c_lflag &= ~(ECHO | ECHOE | ECHOK | ECHONL); + else + { + n_term.c_lflag &= ~(ECHO|ICANON); + n_term.c_lflag |= ISIG; + n_term.c_cc[VMIN] = 1; + n_term.c_cc[VTIME]= 0; + } if ((tcsetattr(fd, TCSAFLUSH, &n_term)) == -1) return -1; return 1; @@ -69,10 +87,32 @@ cbreak (int fd) #define ALERT_START "\033[1;31m" #define NORMAL_RESTORE "\033[0m" +static void +fputs_highlighted (char *text, char *highlight, FILE *ttyfo) +{ + for (; *text; text ++) + { + /* Skip accelerator prefix. */ + if (*text == '_') + { + text ++; + if (! *text) + break; + } + + if (text == highlight) + fputs (UNDERLINE_START, ttyfo); + fputc (*text, ttyfo); + if (text == highlight) + fputs (NORMAL_RESTORE, ttyfo); + } +} + static char button (char *text, char *default_text, FILE *ttyfo) { char *highlight; + int use_default = 0; if (! text) return 0; @@ -110,25 +150,17 @@ button (char *text, char *default_text, FILE *ttyfo) { if (! default_text) return 0; - text = highlight = default_text; + highlight = default_text; + use_default = 1; } fputs (" ", ttyfo); - for (; *text; text ++) + fputs_highlighted (text, highlight, ttyfo); + if (use_default) { - /* Skip accelerator prefix. */ - if (*text == '_') - { - text ++; - if (! *text) - break; - } - - if (text == highlight) - fputs (UNDERLINE_START, ttyfo); - fputc (*text, ttyfo); - if (text == highlight) - fputs (NORMAL_RESTORE, ttyfo); + fputs (" (", ttyfo); + fputs_highlighted (default_text, highlight, ttyfo); + fputc (')', ttyfo); } fputc ('\n', ttyfo); @@ -220,14 +252,6 @@ confirm (pinentry_t pinentry, FILE *ttyfi, FILE *ttyfo) notok = button (pinentry->notok, "No", ttyfo); } - if (cbreak (fileno (ttyfi)) == -1) - { - int err = errno; - fprintf (stderr, "cbreak failure, exiting\n"); - errno = err; - return -1; - } - while (1) { int input; @@ -248,18 +272,26 @@ confirm (pinentry_t pinentry, FILE *ttyfi, FILE *ttyfo) fflush (ttyfo); input = fgetc (ttyfi); - fprintf (ttyfo, "%c\n", input); - input = tolower (input); - if (input == EOF || input == 0x4) - /* End of file or control-d (= end of file). */ + if (input == EOF) { pinentry->close_button = 1; pinentry->canceled = 1; + +#ifndef HAVE_DOSISH_SYSTEM + if (!timed_out && errno == EINTR) + pinentry->specific_err = gpg_error (GPG_ERR_FULLY_CANCELED); +#endif + ret = 0; break; } + else + { + fprintf (ttyfo, "%c\n", input); + input = tolower (input); + } if (pinentry->one_button) { @@ -294,13 +326,11 @@ confirm (pinentry_t pinentry, FILE *ttyfi, FILE *ttyfo) pinentry->specific_err = gpg_error (GPG_ERR_TIMEOUT); #endif - tcsetattr (fileno(ttyfi), TCSANOW, &o_term); - return ret; } static char * -read_password (FILE *ttyfi, FILE *ttyfo) +read_password (pinentry_t pinentry, FILE *ttyfi, FILE *ttyfo) { int done = 0; int len = 128; @@ -309,14 +339,6 @@ read_password (FILE *ttyfi, FILE *ttyfo) (void) ttyfo; - if (cbreak (fileno (ttyfi)) == -1) - { - int err = errno; - fprintf (stderr, "cbreak failure, exiting\n"); - errno = err; - return NULL; - } - buffer = secmem_malloc (len); if (! buffer) return NULL; @@ -344,21 +366,18 @@ read_password (FILE *ttyfi, FILE *ttyfo) c = fgetc (ttyfi); switch (c) { - case 0x4: case EOF: - /* Control-d (i.e., end of file) or a real EOF. */ - done = -1; + case EOF: + done = -1; +#ifndef HAVE_DOSISH_SYSTEM + if (!timed_out && errno == EINTR) + pinentry->specific_err = gpg_error (GPG_ERR_FULLY_CANCELED); +#endif break; case '\n': done = 1; break; - case 0x7f: - /* Backspace. */ - if (count > 0) - count --; - break; - default: buffer[count ++] = c; break; @@ -366,8 +385,6 @@ read_password (FILE *ttyfi, FILE *ttyfo) } buffer[count] = '\0'; - tcsetattr (fileno(ttyfi), TCSANOW, &o_term); - if (done == -1) { secmem_free (buffer); @@ -411,7 +428,7 @@ password (pinentry_t pinentry, FILE *ttyfi, FILE *ttyfo) || prompt[strlen(prompt) - 1] == '?') ? "" : ":"); fflush (ttyfo); - passphrase = read_password (ttyfi, ttyfo); + passphrase = read_password (pinentry, ttyfi, ttyfo); fputc ('\n', ttyfo); if (! passphrase) { @@ -433,7 +450,7 @@ password (pinentry_t pinentry, FILE *ttyfi, FILE *ttyfo) || prompt[strlen(prompt) - 1] == '?') ? "" : ":"); fflush (ttyfo); - passphrase2 = read_password (ttyfi, ttyfo); + passphrase2 = read_password (pinentry, ttyfi, ttyfo); fputc ('\n', ttyfo); if (! passphrase2) { @@ -495,7 +512,7 @@ do_touch_file(pinentry_t pinentry) #ifndef HAVE_DOSISH_SYSTEM static void -catchsig(int sig) +catchsig (int sig) { if (sig == SIGALRM) timed_out = 1; @@ -503,11 +520,12 @@ catchsig(int sig) #endif int -tty_cmd_handler(pinentry_t pinentry) +tty_cmd_handler (pinentry_t pinentry) { int rc = 0; FILE *ttyfi = stdin; FILE *ttyfo = stdout; + int saved_errno = 0; #ifndef HAVE_DOSISH_SYSTEM timed_out = 0; @@ -516,10 +534,11 @@ tty_cmd_handler(pinentry_t pinentry) { struct sigaction sa; - memset(&sa, 0, sizeof(sa)); + memset (&sa, 0, sizeof(sa)); sa.sa_handler = catchsig; - sigaction(SIGALRM, &sa, NULL); - alarm(pinentry->timeout); + sigaction (SIGALRM, &sa, NULL); + sigaction (SIGINT, &sa, NULL); + alarm (pinentry->timeout); } #endif @@ -527,29 +546,39 @@ tty_cmd_handler(pinentry_t pinentry) { ttyfi = fopen (pinentry->ttyname, "r"); if (!ttyfi) - rc = -1; - else + return -1; + + ttyfo = fopen (pinentry->ttyname, "w"); + if (!ttyfo) { - ttyfo = fopen (pinentry->ttyname, "w"); - if (!ttyfo) - { - int err = errno; - fclose (ttyfi); - errno = err; - rc = -1; - } + saved_errno = errno; + fclose (ttyfi); + errno = saved_errno; + return -1; } } - if (! rc) + if (terminal_save (fileno (ttyfi)) < 0) + rc = -1; + else { - if (pinentry->pin) - rc = password (pinentry, ttyfi, ttyfo); + if (terminal_setup (fileno (ttyfi), !!pinentry->pin) == -1) + { + saved_errno = errno; + fprintf (stderr, "terminal_setup failure, exiting\n"); + rc = -1; + } else - rc = confirm (pinentry, ttyfi, ttyfo); - } + { + if (pinentry->pin) + rc = password (pinentry, ttyfi, ttyfo); + else + rc = confirm (pinentry, ttyfi, ttyfo); - do_touch_file (pinentry); + terminal_restore (fileno (ttyfi)); + do_touch_file (pinentry); + } + } if (pinentry->ttyname) { @@ -557,6 +586,9 @@ tty_cmd_handler(pinentry_t pinentry) fclose (ttyfo); } + if (saved_errno) + errno = saved_errno; + return rc; } diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/w32/Makefile.am b/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/Makefile.am similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/w32/Makefile.am rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/Makefile.am diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/w32/Makefile.in b/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/Makefile.in similarity index 92% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/w32/Makefile.in rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/Makefile.in index 15efcfc1..d7acbb72 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/w32/Makefile.in +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -34,7 +34,17 @@ # SPDX-License-Identifier: GPL-2.0+ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -99,16 +109,15 @@ build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = pinentry-w32$(EXEEXT) subdir = w32 -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/build-aux/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/curses.m4 \ $(top_srcdir)/m4/gpg-error.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/libassuan.m4 $(top_srcdir)/m4/pkg.m4 \ - $(top_srcdir)/m4/qt.m4 $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/qt.m4 $(top_srcdir)/m4/qt4.m4 \ + $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -136,7 +145,8 @@ am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__depfiles_maybe = depfiles +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/main.Po am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -176,6 +186,8 @@ am__define_uniq_tagged_files = \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -200,6 +212,8 @@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ +EFL_CFLAGS = @EFL_CFLAGS@ +EFL_LIBS = @EFL_LIBS@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FLTKCFLAGS = @FLTKCFLAGS@ @@ -209,6 +223,7 @@ FLTK_CONFIG = @FLTK_CONFIG@ GITLOG_TO_CHANGELOG = @GITLOG_TO_CHANGELOG@ GNOME3_CFLAGS = @GNOME3_CFLAGS@ GNOME3_LIBS = @GNOME3_LIBS@ +GPGRT_CONFIG = @GPGRT_CONFIG@ GPG_ERROR_CFLAGS = @GPG_ERROR_CFLAGS@ GPG_ERROR_CONFIG = @GPG_ERROR_CONFIG@ GPG_ERROR_LIBS = @GPG_ERROR_LIBS@ @@ -222,11 +237,12 @@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KF5WAYLANDCLIENT_CFLAGS = @KF5WAYLANDCLIENT_CFLAGS@ +KF5WAYLANDCLIENT_LIBS = @KF5WAYLANDCLIENT_LIBS@ LDFLAGS = @LDFLAGS@ LIBASSUAN_CFLAGS = @LIBASSUAN_CFLAGS@ LIBASSUAN_CONFIG = @LIBASSUAN_CONFIG@ LIBASSUAN_LIBS = @LIBASSUAN_LIBS@ -LIBCAP = @LIBCAP@ LIBCURSES = @LIBCURSES@ LIBICONV = @LIBICONV@ LIBNCURSES = @LIBNCURSES@ @@ -235,6 +251,8 @@ LIBS = @LIBS@ LIBSECRET_CFLAGS = @LIBSECRET_CFLAGS@ LIBSECRET_LIBS = @LIBSECRET_LIBS@ LIBTERMCAP = @LIBTERMCAP@ +LIBX11_CFLAGS = @LIBX11_CFLAGS@ +LIBX11_LIBS = @LIBX11_LIBS@ LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ @@ -243,6 +261,8 @@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ MOC2 = @MOC2@ +MOC4 = @MOC4@ +MOC42 = @MOC42@ NCURSES_CFLAGS = @NCURSES_CFLAGS@ NCURSES_INCLUDE = @NCURSES_INCLUDE@ NCURSES_LIBS = @NCURSES_LIBS@ @@ -256,16 +276,23 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PINENTRY_DEFAULT = @PINENTRY_DEFAULT@ +PINENTRY_QT4_CFLAGS = @PINENTRY_QT4_CFLAGS@ +PINENTRY_QT4_LDFLAGS = @PINENTRY_QT4_LDFLAGS@ +PINENTRY_QT4_LIBS = @PINENTRY_QT4_LIBS@ PINENTRY_QT_CFLAGS = @PINENTRY_QT_CFLAGS@ +PINENTRY_QT_LDFLAGS = @PINENTRY_QT_LDFLAGS@ PINENTRY_QT_LIBS = @PINENTRY_QT_LIBS@ PINENTRY_QT_REQUIRE_CPP11_CFLAGS = @PINENTRY_QT_REQUIRE_CPP11_CFLAGS@ PINENTRY_QT_REQUIRE_CPP11_LIBS = @PINENTRY_QT_REQUIRE_CPP11_LIBS@ +PINENTRY_QT_X11_EXTRAS_CFLAGS = @PINENTRY_QT_X11_EXTRAS_CFLAGS@ +PINENTRY_QT_X11_EXTRAS_LIBS = @PINENTRY_QT_X11_EXTRAS_LIBS@ PINENTRY_TQT_CFLAGS = @PINENTRY_TQT_CFLAGS@ PINENTRY_TQT_LIBS = @PINENTRY_TQT_LIBS@ PKG_CONFIG = @PKG_CONFIG@ QTCHOOSER = @QTCHOOSER@ RANLIB = @RANLIB@ -SETCAP = @SETCAP@ +RCC = @RCC@ +RCC2 = @RCC2@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ @@ -315,6 +342,7 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -352,14 +380,13 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu w32/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu w32/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -423,7 +450,13 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -491,7 +524,10 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -563,7 +599,7 @@ clean: clean-am clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/main.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -609,7 +645,7 @@ install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/main.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -629,7 +665,7 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ distclean distclean-compile distclean-generic distclean-tags \ distdir dvi dvi-am html html-am info info-am install \ @@ -643,6 +679,8 @@ uninstall-am: uninstall-binPROGRAMS ps ps-am tags tags-am uninstall uninstall-am \ uninstall-binPROGRAMS +.PRECIOUS: Makefile + pinentry-w32.o: pinentry-w32.rc resource.h $(logos) $(WINDRES) -I.. -v -o $@ $< diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/w32/logo-128.bmp b/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/logo-128.bmp similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/w32/logo-128.bmp rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/logo-128.bmp diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/w32/logo-32.bmp b/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/logo-32.bmp similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/w32/logo-32.bmp rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/logo-32.bmp diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/w32/logo-48.bmp b/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/logo-48.bmp similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/w32/logo-48.bmp rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/logo-48.bmp diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/w32/logo-64.bmp b/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/logo-64.bmp similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/w32/logo-64.bmp rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/logo-64.bmp diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/w32/logo-96.bmp b/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/logo-96.bmp similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/w32/logo-96.bmp rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/logo-96.bmp diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/w32/main.c b/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/main.c similarity index 99% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/w32/main.c rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/main.c index 0b3d702b..d8a48339 100644 --- a/debian/pinentry-tqt/pinentry-tqt-1.1.0/w32/main.c +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/main.c @@ -83,7 +83,6 @@ w32_strerror (int ec) /* There is only a wchar_t FormatMessage. It does not make much sense to play the conversion game; we print only the code. */ snprintf (strerr, sizeof strerr, "ec=%d", ec); - strerr[sizeof strerr -1] = 0; #else FormatMessage (FORMAT_MESSAGE_FROM_SYSTEM, NULL, ec, MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT), diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/w32/pinentry-w32.rc b/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/pinentry-w32.rc similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/w32/pinentry-w32.rc rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/pinentry-w32.rc diff --git a/debian/pinentry-tqt/pinentry-tqt-1.1.0/w32/resource.h b/debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/resource.h similarity index 100% rename from debian/pinentry-tqt/pinentry-tqt-1.1.0/w32/resource.h rename to debian/pinentry-tqt/pinentry-tqt-1.2.1/w32/resource.h diff --git a/debian/pinentry-tqt/pinentry-tqt_1.1.0.orig.tar.bz2 b/debian/pinentry-tqt/pinentry-tqt_1.1.0.orig.tar.bz2 deleted file mode 100644 index 76a7534b32b0fd9a604aabfe8065790a4a2f6d1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 467702 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≤xVCE|A9dxIf|um5#|#cIH6i+QUwFY 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

NTr#fbE47)t!tJ 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

fReU36E6Mndu~^G4LDK%&HRx>KSDQQ;92b$1s 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 aDpuP4r%?H}Oo0#o;_gVN3KAOjYIWd9c=Q(l diff --git a/debian/pinentry-tqt/pinentry-tqt_1.2.1.orig.tar.bz2 b/debian/pinentry-tqt/pinentry-tqt_1.2.1.orig.tar.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..cfa3e579d8fcd157a380dbf8df1bf8e1acd4d694 GIT binary patch literal 547698 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

9VQwm=$IHpq0N{SXTG~!&t`nn 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§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 z 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

FM~ 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