git: f92a6c473dc6 - main - www/sogo: Convert to FLAVORS

From: Jose Alonso Cardenas Marquez <acm_at_FreeBSD.org>
Date: Sun, 23 Mar 2025 00:49:10 UTC
The branch main has been updated by acm:

URL: https://cgit.FreeBSD.org/ports/commit/?id=f92a6c473dc6e6d0c778afd02d206b130325c52a

commit f92a6c473dc6e6d0c778afd02d206b130325c52a
Author:     Jose Alonso Cardenas Marquez <acm@FreeBSD.org>
AuthorDate: 2025-03-23 00:45:38 +0000
Commit:     Jose Alonso Cardenas Marquez <acm@FreeBSD.org>
CommitDate: 2025-03-23 00:49:00 +0000

    www/sogo: Convert to FLAVORS
    
    - devel/sope: Convert to sope-pgsql and sope-mysql flavors
    - www/sogo: Convert to sogo-mysql, sogo-mysqlactivesync, sogo-pgsql,
      sogo-pgsqlactivesync flavors
    - Bump PORTREVISION
    Reported by:    kiwi
    Differential Revision:  <https://reviews.freebsd.org/D49056>
---
 devel/sope/Makefile | 27 +++++++++++++++++++++------
 www/sogo/Makefile   | 46 ++++++++++++++++++++++++++++++++++++++--------
 2 files changed, 59 insertions(+), 14 deletions(-)

diff --git a/devel/sope/Makefile b/devel/sope/Makefile
index 03d6d5a42b1a..caf8817a6268 100644
--- a/devel/sope/Makefile
+++ b/devel/sope/Makefile
@@ -1,8 +1,10 @@
 PORTNAME=		sope
 PORTVERSION=		5.11.2
+PORTREVISION=		1
 CATEGORIES=		devel gnustep
 MASTER_SITES=		https://packages.sogo.nu/sources/
 DISTNAME=		SOPE-${PORTVERSION}
+PKGNAMESUFFIX=		-${FLAVOR}
 
 MAINTAINER=		acm@FreeBSD.org
 COMMENT=		Extensive set of GNUstep web application frameworks
@@ -10,7 +12,8 @@ WWW=			https://sogo.nu/
 
 LICENSE=		LGPL20
 
-LIB_DEPENDS=		libmemcached.so:databases/libmemcached
+FLAVORS=		mysql pgsql
+FLAVOR?=		${FLAVORS[1]}
 
 USES=			gmake gnome iconv gnustep
 USE_GNOME=		libxml2
@@ -22,27 +25,39 @@ CONFIGURE_ENV+=		CC="${CC}"
 
 LLD_UNSAFE=		yes # PR 230608
 
-CONFLICTS=		sope2
+mysql_CONFLICTS_INSTALL=	sope2 ${PORTNAME}-pgsql
+pgsql_CONFLICTS_INSTALL=	sope2 ${PORTNAME}-mysql
 
 SUB_LIST+=		GNUSTEP_LOCAL_TOOLS=${GNUSTEP_LOCAL_TOOLS} \
 			GNUSTEP_MAKEFILES=${GNUSTEP_MAKEFILES}
 
 WRKSRC=			${WRKDIR}/SOPE
 
-OPTIONS_DEFINE=		LDAP MYSQL PGSQL MEMCACHED
-OPTIONS_DEFAULT=	LDAP PGSQL MEMCACHED
+OPTIONS_DEFINE=		LDAP
+OPTIONS_DEFAULT=	LDAP
+
+OPTIONS_SINGLE_DATABASE=MYSQL PGSQL
+OPTIONS_SINGLE=		DATABASE
+DATABASE_DESC=		Database support
+
 OPTIONS_SUB=		yes
 
 LDAP_DESC=		Build with LDAP support
-MEMCACHED_DESC=		Install memcached
 MYSQL_DESC=		Build with MySQL support
 PGSQL_DESC=		Build with PostgreSQL support
 
 LDAP_USES=		ldap
-MEMCACHED_RUN_DEPENDS=	${LOCALBASE}/bin/memcached:databases/memcached
 MYSQL_USES=		mysql
 PGSQL_USES=		pgsql
 
+.if ${FLAVOR:U} == pgsql
+OPTIONS_DEFAULT+=	PGSQL
+.endif
+
+.if ${FLAVOR:U} == mysql
+OPTIONS_DEFAULT+=	MYSQL
+.endif
+
 .include <bsd.port.options.mk>
 
 .if ${OPSYS} == FreeBSD
diff --git a/www/sogo/Makefile b/www/sogo/Makefile
index 33b99616f73c..7a28fcd6f8f7 100644
--- a/www/sogo/Makefile
+++ b/www/sogo/Makefile
@@ -1,8 +1,10 @@
 PORTNAME=		sogo
 PORTVERSION=		5.11.2
+PORTREVISION=		1
 CATEGORIES=		www gnustep
 MASTER_SITES=		https://packages.sogo.nu/sources/
 DISTNAME=		SOGo-${PORTVERSION}
+PKGNAMESUFFIX=		-${FLAVOR}
 
 MAINTAINER=		acm@FreeBSD.org
 COMMENT=		Groupware server with a focus on scalability and open standards
@@ -10,11 +12,13 @@ WWW=			https://sogo.nu/
 
 LICENSE=		GPLv2
 
+FLAVORS=		mysql mysqlactivesync pgsql pgsqlactivesync
+FLAVOR?=		${FLAVORS[1]}
+
 LIB_DEPENDS=		libmemcached.so:databases/libmemcached \
 			libcurl.so:ftp/curl \
 			libsodium.so:security/libsodium \
 			libzip.so:archivers/libzip \
-			libDOM.so:devel/sope \
 			libytnef.so:converters/ytnef
 
 RUN_DEPENDS=		zip:archivers/zip
@@ -30,18 +34,27 @@ SHEBANG_FILES=		${WRKSRC}/SoObjects/SOGo/gen-saml2-exceptions.py
 
 CONFIGURE_ARGS+=	--disable-debug --disable-strip
 
-CONFLICTS?=		sogo[2-4]-activesync sogo[2-4]
+mysql_CONFLICTS_INSTALL=        sogo2 ${PORTNAME}-pgsql ${PORTNAME}-pgsqlactivesync
+pgsql_CONFLICTS_INSTALL=        sogo2 ${PORTNAME}-mysql ${PORTNAME}-mysqlactivesync
+mysqlactivesync_CONFLICTS_INSTALL=sogo2 ${PORTNAME}-pgsql ${PORTNAME}-pgsqlactivesync
+pgsqlactivesync_CONFLICTS_INSTALL=sogo2 ${PORTNAME}-mysql ${PORTNAME}-mysqlactivesync
 
-OPTIONS_DEFAULT=	MFA
-OPTIONS_DEFINE=		ACTIVESYNC MFA SAML2
+OPTIONS_DEFAULT=	MEMCACHED MFA SAML2
+OPTIONS_DEFINE=		ACTIVESYNC MEMCACHED MFA SAML2
 OPTIONS_SUB=		yes
+OPTIONS_SINGLE_DATABASE=MYSQL PGSQL
+OPTIONS_SINGLE=         DATABASE
+DATABASE_DESC=          Database support
 
 ACTIVESYNC_DESC=	Enable support for ActiveSync protocol
+MEMCACHED_DESC=		Install memcached
 MFA_DESC=		Enable support for multi-factor authentication
 SAML2_DESC=		Enable support for SAML2 authentication
 
 ACTIVESYNC_LIB_DEPENDS=	libwbxml2.so:textproc/libwbxml
 
+MEMCACHED_RUN_DEPENDS=	${LOCALBASE}/bin/memcached:databases/memcached
+
 MFA_LIB_DEPENDS=	liboath.so:security/oath-toolkit
 MFA_CONFIGURE_ON=	--enable-mfa
 
@@ -50,6 +63,11 @@ SAML2_USES=		python:build gnome
 SAML2_USE=		gnome=glib20
 SAML2_CONFIGURE_ON=	--enable-saml2
 
+PGSQL_BUILD_DEPENDS=	${LOCALBASE}/GNUstep/Local/Library/GDLAdaptors-4.9/PostgreSQL.gdladaptor/PostgreSQL:devel/sope@pgsql
+PGSQL_RUN_DEPENDS=	${LOCALBASE}/GNUstep/Local/Library/GDLAdaptors-4.9/PostgreSQL.gdladaptor/PostgreSQL:devel/sope@pgsql
+MYSQL_BUILD_DEPENDS=	${LOCALBASE}/GNUstep/Local/Library/GDLAdaptors-4.9/MySQL.gdladaptor/MySQL:devel/sope@mysql
+MYSQL_RUN_DEPENDS=	${LOCALBASE}/GNUstep/Local/Library/GDLAdaptors-4.9/MySQL.gdladaptor/MySQL:devel/sope@mysql
+
 USERS=			sogod
 GROUPS=			sogod
 
@@ -57,14 +75,26 @@ SUB_FILES+=		pkg-message
 SUB_LIST+=		GNUSTEP_LOCAL_TOOLS=${GNUSTEP_LOCAL_TOOLS} \
 			GNUSTEP_MAKEFILES=${GNUSTEP_MAKEFILES}
 
-.include <bsd.port.pre.mk>
+.if ${FLAVOR:U} == pgsql
+OPTIONS_DEFAULT+=	PGSQL
+.endif
 
-.if ${OPSYS} == FreeBSD
-CPPFLAGS+=	-Wno-error=int-conversion
+.if ${FLAVOR:U} == mysql
+OPTIONS_DEFAULT+=	MYSQL
 .endif
 
+.if ${FLAVOR:U} == mysqlactivesync
+OPTIONS_DEFAULT+=	ACTIVESYNC MYSQL
+.endif
+
+.if ${FLAVOR:U} == pgsqlactivesync
+OPTIONS_DEFAULT+=	ACTIVESYNC PGSQL
+.endif
+
+.include <bsd.port.pre.mk>
+
 .if ${OPSYS} == FreeBSD
-CPPFLAGS+=	-Wno-error=incompatible-function-pointer-types
+CPPFLAGS+=	-Wno-error=int-conversion -Wno-error=incompatible-function-pointer-types
 .endif
 
 post-patch: