PORTNAME= pinentry PORTVERSION= 1.3.1 PORTREVISION?= 1 CATEGORIES= security MASTER_SITES= GNUPG/pinentry MAINTAINER= jhale@FreeBSD.org COMMENT?= Collection of simple PIN or passphrase entry dialogs WWW= https://www.gnupg.org/aegypten2 LICENSE= GPLv2+ LICENSE_FILE= ${WRKSRC}/COPYING USES= tar:bzip2 .if !defined(PINENTRY_GUI) INFO= pinentry NO_ARCH= yes NO_BUILD= yes PLIST_FILES= bin/pinentry OPTIONS_SINGLE= FRONTEND OPTIONS_SINGLE_FRONTEND= EFL FLTK GNOME GTK2 NCURSES QT5 QT6 TTY OPTIONS_DEFAULT= NCURSES FRONTEND_DESC= Default frontend TTY_DESC= Console version PINENTRY_TTY= pinentry-tty TTY_RUN_DEPENDS= ${PINENTRY_TTY}:security/pinentry-tty NCURSES_DESC= Curses frontend PINENTRY_NCURSES= pinentry-curses NCURSES_RUN_DEPENDS= ${PINENTRY_NCURSES}:security/pinentry-curses EFL_DESC= EFL frontend PINENTRY_EFL= pinentry-efl # Due to a dependency loop that exists between security/pinentry-efl, # devel/elf, graphics/poppler, security/gpgme-cpp, security/gpgme, # security/gnupg and security/pinentry, the user must install # pinentry-efl manually. See pkg-message.dep-loop for more details. #EFL_RUN_DEPENDS= ${PINENTRY_EFL}:security/pinentry-efl EFL_SUB_FILES= pkg-message.dep-loop EFL_SUB_LIST= PKGNAME="pinentry-efl" EFL_VARS= PKGMESSAGE+=${WRKDIR}/pkg-message.dep-loop FLTK_DESC= FLTK frontend PINENTRY_FLTK= pinentry-fltk FLTK_RUN_DEPENDS= ${PINENTRY_FLTK}:security/pinentry-fltk GTK2_DESC= Gtk+ 2 frontend PINENTRY_GTK2= pinentry-gtk-2 GTK2_RUN_DEPENDS= ${PINENTRY_GTK2}:security/pinentry-gtk2 QT5_DESC= Qt 5 frontend PINENTRY_QT5= pinentry-qt5 QT5_RUN_DEPENDS= ${PINENTRY_QT5}:security/pinentry-qt5 QT6_DESC= Qt 6 frontend PINENTRY_QT6= pinentry-qt QT6_RUN_DEPENDS= ${PINENTRY_QT6}:security/pinentry-qt6 GNOME_DESC= GNOME frontend PINENTRY_GNOME= pinentry-gnome3 # Due to a dependency loop that exists between security/pinentry-gnome, # security/gcr, security/gnupg and security/pinentry, the user must install # pinentry-gnome manually. See pkg-message.dep-loop for more details. #GNOME_RUN_DEPENDS= ${PINENTRY_GNOME}:security/pinentry-gnome GNOME_SUB_FILES=pkg-message.dep-loop GNOME_SUB_LIST= PKGNAME="pinentry-gnome" GNOME_VARS= PKGMESSAGE+=${WRKDIR}/pkg-message.dep-loop .include .for gui in ${OPTIONS_SINGLE_FRONTEND} . if ${PORT_OPTIONS:M${gui}} PINENTRY_BIN= ${PINENTRY_${gui}} . endif .endfor do-install: ${LN} -sf ${PINENTRY_BIN} ${STAGEDIR}${PREFIX}/bin/pinentry ${INSTALL_DATA} ${WRKSRC}/doc/pinentry.info ${STAGEDIR}${PREFIX}/${INFO_PATH} .else # !defined(PINENTRY_GUI) PKGNAMESUFFIX= -${PINENTRY_GUI} LIB_DEPENDS= libassuan.so:security/libassuan \ libgpg-error.so:security/libgpg-error USES+= gmake iconv localbase ncurses pkgconfig GNU_CONFIGURE= yes CONFIGURE_ARGS= --disable-pinentry-emacs LDFLAGS+= -Wl,--as-needed OPTIONS_DEFINE= LIBSECRET LIBSECRET_DESC= Saving the passphrase with libsecret LIBSECRET_CONFIGURE_ENABLE= libsecret LIBSECRET_LIB_DEPENDS= libsecret-1.so:security/libsecret LIBSECRET_USES= gnome LIBSECRET_USE= GNOME=glib20 .if ${PINENTRY_GUI} == "gnome" OPTIONS_SLAVE= LIBSECRET LIB_DEPENDS+= libgcr-base-3.so:security/gcr3 PLIST_FILES= bin/pinentry-gnome3 .else CONFIGURE_ARGS+=--disable-pinentry-gnome3 .endif .if ${PINENTRY_GUI} == "qt5" USES+= compiler:c++11-lang kde:5 qt:5 xorg USE_KDE= wayland USE_QT= core gui widgets x11extras buildtools:build USE_XORG= x11 PLIST_FILES= bin/pinentry-qt5 \ share/applications/org.gnupg.pinentry-qt5.desktop \ share/pixmaps/pinentry-qt5.png CONFIGURE_ARGS+=--enable-pinentry-qt5 .else CONFIGURE_ARGS+=--disable-pinentry-qt5 .endif .if ${PINENTRY_GUI} == "qt6" USES+= compiler:c++17-lang kde:6 qt:6 USE_CXXSTD= c++17 USE_KDE= guiaddons windowsystem USE_QT= base PLIST_FILES= bin/pinentry-qt \ share/applications/org.gnupg.pinentry-qt.desktop \ share/pixmaps/pinentry.png CONFIGURE_ARGS+=--enable-pinentry-qt .else CONFIGURE_ARGS+=--disable-pinentry-qt .endif .if ${PINENTRY_GUI} == "gtk2" USES+= gnome USE_GNOME+= gtk20 PLIST_FILES= bin/pinentry-gtk-2 .else CONFIGURE_ARGS+=--disable-pinentry-gtk2 .endif .if ${PINENTRY_GUI} == "efl" LIB_DEPENDS+= libefl.so:devel/efl PLIST_FILES= bin/pinentry-efl .else CONFIGURE_ARGS+=--disable-pinentry-efl .endif .if ${PINENTRY_GUI} == "fltk" USES+= compiler:c++11-lib LIB_DEPENDS+= libfltk.so:x11-toolkits/fltk PLIST_FILES= bin/pinentry-fltk .else CONFIGURE_ARGS+=--disable-pinentry-fltk .endif .if ${PINENTRY_GUI} == "curses" PLIST_FILES= bin/pinentry-curses .else CONFIGURE_ARGS+=--disable-pinentry-curses .endif .if ${PINENTRY_GUI} == "tty" PLIST_FILES= bin/pinentry-tty CONFIGURE_ARGS+=--enable-pinentry-tty .else CONFIGURE_ARGS+=--disable-pinentry-tty .endif # Rename icon to prevent install conflicts with the Qt6 frontend. post-extract: @(cd ${WRKSRC}/qt5/icons && ${MV} pinentry.png pinentry-qt5.png) post-install: ${RM} ${STAGEDIR}${PREFIX}/bin/pinentry \ ${STAGEDIR}${PREFIX}/share/info/pinentry.info .endif # !defined(PINENTRY_GUI) .include