Files
ports/security/pinentry/Makefile
T
Jason E. Hale 163cafb982 security/pinentry: Update to 1.3.3
Fix typos and ESL.

Use security/gcr as recommended by upstream. Consequently, allow
the security/pinenty-gnome3 child port to build normally.
2026-07-03 05:20:19 -04:00

178 lines
4.5 KiB
Makefile

PORTNAME= pinentry
PORTVERSION= 1.3.3
PORTREVISION?= 0
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/efl, graphics/poppler, security/gpgmepp, 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
GNOME_RUN_DEPENDS= ${PINENTRY_GNOME}:security/pinentry-gnome
.include <bsd.port.options.mk>
.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= Store passphrases 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-4.so:security/gcr
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 <bsd.port.mk>