security/pinentry: Users who enable the non-default GNOME3 option will now

have to install security/pinentry-gnome3 manually. This has been done to break
a dependency loop that was introduced in r553735 where security/gcr added a
build dependency on security/gnupg.

Before r553735:
security/gnupg -> security/pinentry -> security/pinentry-gnome3 -> security/gcr

After r553735:
security/gnupg -> security/pinentry -> security/pinentry-gnome3 -> security/gcr
-> security/gnupg

Now:
security/gnupg -> security/pinentry
security/pinentry-gnome3 -> security/gcr -> security/gnupg

A pkg-message has been added to remind users of the GNOME3 option to install the
required package manually and to deinstall it if no longer needed.

PR:		250945
Reported by:	<sdalu@sdalu.com>
This commit is contained in:
Jason E. Hale 2020-11-15 20:37:58 +00:00
parent 79dec84926
commit e572cd2816
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=555432
2 changed files with 32 additions and 2 deletions

View File

@ -3,7 +3,7 @@
PORTNAME= pinentry
PORTVERSION= 1.1.0
PORTREVISION?= 6
PORTREVISION?= 7
CATEGORIES= security
MASTER_SITES= GNUPG/pinentry
@ -49,7 +49,11 @@ QT5_RUN_DEPENDS= ${PINENTRY_QT5}:security/pinentry-qt5
GNOME3_DESC= GNOME 3 frontend
PINENTRY_GNOME3= pinentry-gnome3
GNOME3_RUN_DEPENDS= ${PINENTRY_GNOME3}:security/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>

View File

@ -0,0 +1,26 @@
[
{ type: install
message: <<EOM
Due to a dependency loop, you must install security/pinentry-gnome3 manually.
A symlink has been created for you so that pinentry-gnome3 will be the default
pinentry binary after you install it, but bear in mind that the package system
will not keep track of this dependency.
You may install pinentry-gnome3 with one of the following commands:
# pkg install security/pinentry-gnome3
or
# make -C /usr/ports/security/pinentry-gnome3 install clean
EOM
}
{ type: remove
message: <<EOM
The pinentry package has been removed. If you no longer plan on using this
package, you may remove the pinentry-gnome3 package as well.
You may remove the pinentry-gnome3 package with the following command:
# pkg delete pinentry-gnome3
EOM
}
]