git: 238049db9e47 - main - databases/kdb: Fix build with ICU 75+

From: Jason E. Hale <jhale_at_FreeBSD.org>
Date: Wed, 25 Dec 2024 06:05:47 UTC
The branch main has been updated by jhale:

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

commit 238049db9e470dd0714774b5a6d125787955e332
Author:     Jason E. Hale <jhale@FreeBSD.org>
AuthorDate: 2024-12-25 05:28:22 +0000
Commit:     Jason E. Hale <jhale@FreeBSD.org>
CommitDate: 2024-12-25 06:05:40 +0000

    databases/kdb: Fix build with ICU 75+
    
    ICU 75+ requires at least c++17 for c++; adapt.
    
    While here: Add LICENSE info, clean up whitespace, pet portclippy(1),
    and remove false hope from 7 years ago that sla...ahem...child ports will
    ever be a thing.
    
    PR:             278420, 283577
    Reported by:    jbeich, diizzy
---
 databases/kdb/Makefile                             |  40 +++----
 databases/kdb/files/patch-CMakeLists.txt           |  12 +++
 .../patch-src_parser_generated_sqlscanner.cpp      | 115 +++++++++++++++++++++
 3 files changed, 149 insertions(+), 18 deletions(-)

diff --git a/databases/kdb/Makefile b/databases/kdb/Makefile
index 810baa929348..ca37a81ad27f 100644
--- a/databases/kdb/Makefile
+++ b/databases/kdb/Makefile
@@ -1,35 +1,39 @@
-PORTNAME=		kdb
-DISTVERSION=		3.2.0
-PORTREVISION=		15
-CATEGORIES=		databases kde
-MASTER_SITES=		KDE/stable/${PORTNAME}/src
-DIST_SUBDIR=		KDE/${PORTNAME}
-
-PATCH_SITES=		https://invent.kde.org/libraries/kdb/-/commit/
-PATCHFILES=		b36d74f13a1421437a725fb74502c993c359392a.diff:-p1
-
-MAINTAINER=		kde@FreeBSD.org
-COMMENT=		Database connectivity and creation framework
+PORTNAME=	kdb
+DISTVERSION=	3.2.0
+PORTREVISION=	16
+CATEGORIES=	databases kde
+MASTER_SITES=	KDE/stable/${PORTNAME}/src
+DIST_SUBDIR=	KDE/${PORTNAME}
+
+PATCH_SITES=	https://invent.kde.org/libraries/kdb/-/commit/
+PATCHFILES=	b36d74f13a1421437a725fb74502c993c359392a.diff:-p1
+
+MAINTAINER=	kde@FreeBSD.org
+COMMENT=	Database connectivity and creation framework
 WWW=		https://community.kde.org/KDb
 
-LIB_DEPENDS=		libicuuc.so:devel/icu
+LICENSE=	LGPL20
+LICENSE_FILE=	${WRKSRC}/COPYING.LIB
+
+LIB_DEPENDS=	libicuuc.so:devel/icu
 
-USES=		cmake compiler:c++11-lang kde:5 python qt:5 tar:xz
+USES=		cmake compiler:c++17-lang kde:5 python qt:5 tar:xz
 USE_KDE=	coreaddons i18n \
 		ecm:build
 USE_QT=		core gui network widgets xml \
 		buildtools:build qmake:build
 
-# In the future, these options will be moved into slave ports
 OPTIONS_DEFINE=		SQLITE MYSQL PGSQL
-OPTIONS_SUB=		YES
 OPTIONS_DEFAULT=	${OPTIONS_DEFINE}
+OPTIONS_SUB=		yes
 
-SQLITE_USES=		sqlite
-SQLITE_CMAKE_BOOL_OFF=	CMAKE_DISABLE_FIND_PACKAGE_Sqlite
 MYSQL_USES=		mysql
 MYSQL_CMAKE_BOOL_OFF=	CMAKE_DISABLE_FIND_PACKAGE_MySQL
+
 PGSQL_USES=		pgsql
 PGSQL_CMAKE_BOOL_OFF=	CMAKE_DISABLE_FIND_PACKAGE_PostgreSQL
 
+SQLITE_USES=		sqlite
+SQLITE_CMAKE_BOOL_OFF=	CMAKE_DISABLE_FIND_PACKAGE_Sqlite
+
 .include <bsd.port.mk>
diff --git a/databases/kdb/files/patch-CMakeLists.txt b/databases/kdb/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..b2414feee55f
--- /dev/null
+++ b/databases/kdb/files/patch-CMakeLists.txt
@@ -0,0 +1,12 @@
+Bump CXX standard to c++17. Required for ICU 75+.
+
+--- CMakeLists.txt.orig	2019-03-26 18:44:44 UTC
++++ CMakeLists.txt
+@@ -29,6 +29,7 @@ simple_option(BUILD_QCH "Build API documentation in QC
+ simple_option(BUILD_QCH "Build API documentation in QCH format" OFF)
+ 
+ # Dependencies
++set(CMAKE_CXX_STANDARD 17)
+ set(REQUIRED_QT_VERSION 5.4.0)
+ set(REQUIRED_KF5_VERSION 5.16.0)
+ 
diff --git a/databases/kdb/files/patch-src_parser_generated_sqlscanner.cpp b/databases/kdb/files/patch-src_parser_generated_sqlscanner.cpp
new file mode 100644
index 000000000000..d33486f3cf18
--- /dev/null
+++ b/databases/kdb/files/patch-src_parser_generated_sqlscanner.cpp
@@ -0,0 +1,115 @@
+The register keyword is reserved and unused in C++17.
+
+--- src/parser/generated/sqlscanner.cpp.orig	2019-03-26 18:44:44 UTC
++++ src/parser/generated/sqlscanner.cpp
+@@ -864,9 +864,9 @@ YY_DECL
+  */
+ YY_DECL
+ {
+-	register yy_state_type yy_current_state;
+-	register char *yy_cp, *yy_bp;
+-	register int yy_act;
++	yy_state_type yy_current_state;
++	char *yy_cp, *yy_bp;
++	int yy_act;
+     
+ #line 63 "KDbSqlScanner.l"
+ 
+@@ -917,7 +917,7 @@ yy_match:
+ yy_match:
+ 		do
+ 			{
+-			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
++			YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
+ 			if ( yy_accept[yy_current_state] )
+ 				{
+ 				(yy_last_accepting_state) = yy_current_state;
+@@ -1582,9 +1582,9 @@ static int yy_get_next_buffer (void)
+  */
+ static int yy_get_next_buffer (void)
+ {
+-    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+-	register char *source = (yytext_ptr);
+-	register int number_to_move, i;
++    	char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
++	char *source = (yytext_ptr);
++	int number_to_move, i;
+ 	int ret_val;
+ 
+ 	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+@@ -1716,14 +1716,14 @@ static int yy_get_next_buffer (void)
+ 
+     static yy_state_type yy_get_previous_state (void)
+ {
+-	register yy_state_type yy_current_state;
+-	register char *yy_cp;
++	yy_state_type yy_current_state;
++	char *yy_cp;
+     
+ 	yy_current_state = (yy_start);
+ 
+ 	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
+ 		{
+-		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
++		YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
+ 		if ( yy_accept[yy_current_state] )
+ 			{
+ 			(yy_last_accepting_state) = yy_current_state;
+@@ -1748,10 +1748,10 @@ static int yy_get_next_buffer (void)
+  */
+     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
+ {
+-	register int yy_is_jam;
+-    	register char *yy_cp = (yy_c_buf_p);
++	int yy_is_jam;
++    	char *yy_cp = (yy_c_buf_p);
+ 
+-	register YY_CHAR yy_c = 1;
++	YY_CHAR yy_c = 1;
+ 	if ( yy_accept[yy_current_state] )
+ 		{
+ 		(yy_last_accepting_state) = yy_current_state;
+@@ -1769,9 +1769,9 @@ static int yy_get_next_buffer (void)
+ 		return yy_is_jam ? 0 : yy_current_state;
+ }
+ 
+-    static void yyunput (int c, register char * yy_bp )
++    static void yyunput (int c, char * yy_bp )
+ {
+-	register char *yy_cp;
++	char *yy_cp;
+     
+     yy_cp = (yy_c_buf_p);
+ 
+@@ -1781,10 +1781,10 @@ static int yy_get_next_buffer (void)
+ 	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
+ 		{ /* need to shift things up to make room */
+ 		/* +2 for EOB chars. */
+-		register int number_to_move = (yy_n_chars) + 2;
+-		register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
++		int number_to_move = (yy_n_chars) + 2;
++		char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
+ 					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
+-		register char *source =
++		char *source =
+ 				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
+ 
+ 		while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+@@ -2393,7 +2393,7 @@ static void yy_flex_strncpy (char* s1, yyconst char * 
+ #ifndef yytext_ptr
+ static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+ {
+-	register int i;
++	int i;
+ 	for ( i = 0; i < n; ++i )
+ 		s1[i] = s2[i];
+ }
+@@ -2402,7 +2402,7 @@ static int yy_flex_strlen (yyconst char * s )
+ #ifdef YY_NEED_STRLEN
+ static int yy_flex_strlen (yyconst char * s )
+ {
+-	register int n;
++	int n;
+ 	for ( n = 0; s[n]; ++n )
+ 		;
+