freebsd-ports/security/pinentry/Makefile
Jason E. Hale 89da24f51e security/pinentry*: Update to 1.1.1
Add security/pinentry-efl: An EFL (Enlightenment Foundation Libraries)-based
version of pinentry.

Change the default pinentry program from tty to ncurses so that the package
works out-of-the-box with mail/mutt. [1]

PR:		239381 [1]
Reported by:	<heas@shrubbery.net> [1]
Requested by:	adamw and Derek Schrock <dereks@lifeofadishwasher.com> [1]
2021-01-24 19:15:30 +00:00

152 lines
3.8 KiB
Makefile

# Created by: Michael Nottebrock <lofi@FreeBSD.org>
# $FreeBSD$
PORTNAME= pinentry
PORTVERSION= 1.1.1
PORTREVISION?= 0
CATEGORIES= security
MASTER_SITES= GNUPG/pinentry
MAINTAINER= jhale@FreeBSD.org
COMMENT?= Collection of simple PIN or passphrase entry dialogs
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= TTY NCURSES EFL FLTK GTK2 QT5 GNOME3
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
EFL_RUN_DEPENDS= ${PINENTRY_EFL}:security/pinentry-efl
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
GNOME3_DESC= GNOME 3 frontend
PINENTRY_GNOME3= pinentry-gnome3
# Due to a dependency loop that exists between security/pinentry-gnome3,
# security/gcr, security/gnupg and security/pinentry, the user must install
# pinentry-gnome3 manually. See pkg-message.gnome3 for more details.
#GNOME3_RUN_DEPENDS= ${PINENTRY_GNOME3}:security/pinentry-gnome3
GNOME3_VARS= PKGMESSAGE+=${.CURDIR}/pkg-message.gnome3
.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= 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} == "gnome3"
OPTIONS_SLAVE= LIBSECRET
LIB_DEPENDS+= libgcr-base-3.so:security/gcr
PLIST_FILES= bin/pinentry-gnome3
.else
CONFIGURE_ARGS+=--disable-pinentry-gnome3
.endif
.if ${PINENTRY_GUI} == "qt5"
USES+= compiler:c++11-lib qt:5
USE_QT= core gui widgets buildtools_build
PLIST_FILES= bin/pinentry-qt5
CONFIGURE_ARGS+=--enable-pinentry-qt5 \
--program-suffix=5
.else
CONFIGURE_ARGS+=--disable-pinentry-qt --disable-pinentry-qt5
.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
post-install:
${RM} ${STAGEDIR}${PREFIX}/bin/pinentry \
${STAGEDIR}${PREFIX}/share/info/pinentry.info
.endif # !defined(PINENTRY_GUI)
.include <bsd.port.mk>