git: 7ee79eed98ac - main - www/webalizer: add support for most UTF-8 encodings

From: Dirk Meyer <dinoex_at_FreeBSD.org>
Date: Sun, 28 Apr 2024 14:35:40 UTC
The branch main has been updated by dinoex:

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

commit 7ee79eed98ac03c66e306d71e26c38a8fd26e347
Author:     Dirk Meyer <dinoex@FreeBSD.org>
AuthorDate: 2024-04-28 14:35:27 +0000
Commit:     Dirk Meyer <dinoex@FreeBSD.org>
CommitDate: 2024-04-28 14:35:27 +0000

    www/webalizer: add support for most UTF-8 encodings
---
 german/webalizer2/Makefile                         |   2 +-
 www/webalizer/Makefile                             |  53 +++++--
 .../files/patch-webalizer_lang.japanese-utf8       | 159 ---------------------
 3 files changed, 41 insertions(+), 173 deletions(-)

diff --git a/german/webalizer2/Makefile b/german/webalizer2/Makefile
index 12261241517e..254c0db3b84f 100644
--- a/german/webalizer2/Makefile
+++ b/german/webalizer2/Makefile
@@ -3,7 +3,7 @@ CATEGORIES=	german
 MAINTAINER=	dinoex@FreeBSD.org
 
 MASTERDIR?=	${.CURDIR}/../../www/webalizer
-WEBALIZER_LANG=	german
+WEBALIZER_LANG=	german-utf8
 
 .sinclude "Makefile.local"
 .include "${MASTERDIR}/Makefile"
diff --git a/www/webalizer/Makefile b/www/webalizer/Makefile
index c82824a9e309..421a75b057b4 100644
--- a/www/webalizer/Makefile
+++ b/www/webalizer/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	webalizer
 PORTVERSION=	2.23.8
-PORTREVISION=	17
+PORTREVISION=	18
 CATEGORIES+=	www
 MASTER_SITES=	ftp://ftp.dinoex.de/pub/FreeBSD/distfiles/:main \
 		http://flags.blogpotato.de/zip/:flags
@@ -16,6 +16,7 @@ LICENSE=	GPLv2
 
 LIB_DEPENDS+=	libpng.so:graphics/png
 
+USES=		iconv:build
 GNU_CONFIGURE=	yes
 DOCSDIR?=	${PREFIX}/share/doc/${PKGNAMEPREFIX}${PORTNAME}
 EXAMPLESDIR?=	${PREFIX}/share/examples/${PKGNAMEPREFIX}${PORTNAME}
@@ -102,14 +103,38 @@ DOC1=		CHANGES Copyright INSTALL \
 EXAMPLES1=	msfree.png sample.conf webalizer.png
 WRKSRC=		${WRKDIR}/${DISTNAME:S/-src$//}
 PLIST_SUB+=	PKGNAMEPREFIX=${PKGNAMEPREFIX}
-SUPP_LANG=	albanian arabic catalan chinese croatian czech danish dutch \
-		english estonian finnish french galician german greek \
-		hungarian icelandic indonesian italian japanese japanese-utf8 \
-		korean latvian lithuanian malay norwegian polish portuguese \
-		portuguese_brazil romanian romanian-iso-8859-2 russian \
-		serbian simplified_chinese slovak slovene spanish swedish \
-		thai turkish ukrainian
-
+CHARSETS=	ISO-8859-1 ISO-8859-2 ISO-8859-5 ISO-8859-7 ISO-8859-13 \
+		ISO-8859-15 BIG5 EUC-CN EUC-JP EUC-KR TIS620 WINDOWS-1250
+CHARSET_ISO-8859-1=	catalan danish finnish french galician galician \
+			german icelandic norwegian portuguese \
+			portuguese_brazil spanish swedish
+CHARSET_ISO-8859-2=	czech hungarian polish slovak
+CHARSET_ISO-8859-7=	greek
+CHARSET_ISO-8859-5=	russian ukrainian
+CHARSET_ISO-8859-13=	latvian lithuanian 
+CHARSET_ISO-8859-15=	estonian
+CHARSET_BIG5=	chinese
+CHARSET_EUC-CN=	simplified_chinese
+CHARSET_EUC-JP=	japanese
+CHARSET_EUC-KR=	korean
+CHARSET_TIS620=	thai
+CHARSET_WINDOWS-1250=	slovene
+SUPP_LANG=	albanian arabic catalan catalan-utf8 chinese chinese-utf8 \
+		croatian czech czech-utf8 danish danish-utf8 dutch english \
+		estonian estonian-utf8 finnish finnish-utf8 \
+		french french-utf8 galician galician-utf8 german german-utf8 \
+		greek greek-utf8 hungarian hungarian-utf8 \
+		icelandic icelandic-uf8 indonesian italian \
+		japanese japanese-utf8 korean korean-utf8 \
+		latvian latvian-utf8 lithuanian lithuanian-utf8 malay \
+		norwegian norwegian-utf8 polish polish-utf8 \
+		portuguese portuguese-utf8 \
+		portuguese_brazil portuguese_brazil-utf8 \
+		romanian romanian-iso-8859-2 russian russian-utf8 \
+		serbian simplified_chinese simplified_chinese-utf8 \
+		slovak slovak-utf8 slovene slovene-utf8 spanish spanish-utf8 \
+		swedish swedish-utf8 thai thai-utf8 turkish \
+		ukrainian ukrainian-utf8
 .if defined(WEBALIZER_LANG)
 CONFIGURE_ARGS+=	--with-language=${WEBALIZER_LANG}
 .endif
@@ -123,10 +148,6 @@ BROKEN=		no conversion from UTF-8 needed
 EXTRA_PATCHES+=		${FILESDIR}/webalizer-a-urasim_2.patch
 .endif
 
-post-extract:
-	${CP} -p ${WRKSRC}/lang/webalizer_lang.japanese \
-		${WRKSRC}/lang/webalizer_lang.japanese-utf8
-
 pre-configure:
 	${REINPLACE_CMD} -e "s|/etc|${PREFIX}/etc|" \
 		${WRKSRC}/webalizer.1
@@ -149,6 +170,12 @@ pre-configure:
 		-e "s|-lGeoIP|-lmaxminddb|" \
 		${WRKSRC}/configure
 .endif
+.for charset in ${CHARSETS}
+.for i in ${CHARSET_${charset}}
+	${ICONV_CMD} -f ${charset} -t UTF-8 ${WRKSRC}/lang/webalizer_lang.${i} \
+		> ${WRKSRC}/lang/webalizer_lang.${i}-utf8
+.endfor
+.endfor
 .if defined(WEBALIZER_LANG)
 .if ${WEBALIZER_LANG} == japanese
 	${REINPLACE_CMD} -e 's|charset=UTF-8|charset=x-euc-jp|' \
diff --git a/www/webalizer/files/patch-webalizer_lang.japanese-utf8 b/www/webalizer/files/patch-webalizer_lang.japanese-utf8
deleted file mode 100644
index 7f9a7926298e..000000000000
--- a/www/webalizer/files/patch-webalizer_lang.japanese-utf8
+++ /dev/null
@@ -1,159 +0,0 @@
---- lang/webalizer_lang.japanese-utf8.orig	2008-07-01 22:24:12 UTC
-+++ lang/webalizer_lang.japanese-utf8
-@@ -186,16 +186,16 @@ char *h_msg[]= {
- 
- /* header strings */
- /* char *msg_hhdr_sp = "Summary Period";*/
--char *msg_hhdr_sp = "統計期間";
--char *msg_hhdr_gt = "作成日時";
-+char *msg_hhdr_sp = "腟沿";
-+char *msg_hhdr_gt = "篏ユ";
- 
- /* main index strings */
- char *msg_main_us = "Usage summary for";
--/* char *msg_main_per= "過去12ヶ月"; */
--char *msg_main_per= "月の統計";
--char *msg_main_sum= "月の統計";
--char *msg_main_da = "一日あたりの平均";
--char *msg_main_mt = "月合計";
-+/* char *msg_main_per= "サ12倶"; */
-+char *msg_main_per= "腟沿";
-+char *msg_main_sum= "腟沿";
-+char *msg_main_da = "筝ャ綛喝";
-+char *msg_main_mt = "荐";
- 
- /* month HTML page strings */
- char *msg_hmth_du = "Daily usage for";
-@@ -203,77 +203,77 @@ char *msg_hmth_hu = "Hourly usage for";
- 
- /* table header strings */
- char *msg_h_by    = "By";
--char *msg_h_avg   = "平均";
--char *msg_h_max   = "最大";
--char *msg_h_total = "合計";
--char *msg_h_totals= "総合計";
--char *msg_h_day   = "日";
--char *msg_h_mth   = "月";
--char *msg_h_hour  = "時";
-+char *msg_h_avg   = "綛喝";
-+char *msg_h_max   = "紊";
-+char *msg_h_total = "荐";
-+char *msg_h_totals= "膩荐";
-+char *msg_h_day   = "";
-+char *msg_h_mth   = "";
-+char *msg_h_hour  = "";
- char *msg_h_hits  = "Hits";
- char *msg_h_pages = "Pages";
- char *msg_h_visits= "Visits";
- char *msg_h_files = "Files";
- char *msg_h_sites = "Sites";
- char *msg_h_xfer  = "KBytes";
--char *msg_h_hname = "ホスト名";
-+char *msg_h_hname = "鴻";
- char *msg_h_url   = "URL";
--char *msg_h_agent = "ユーザエージェント";
--char *msg_h_ref   = "リファラー";
--char *msg_h_ctry  = "国";
--char *msg_h_search= "検索文字列";
--char *msg_h_uname = "ユーザ名";
-+char *msg_h_agent = "若吟若吾с潟";
-+char *msg_h_ref   = "<";
-+char *msg_h_ctry  = "";
-+char *msg_h_search= "罎膣∽絖";
-+char *msg_h_uname = "若九";
- 
- /* links along top of page */
--char *msg_hlnk_ds = "日ごとの統計";
--char *msg_hlnk_hs = "時間ごとの統計";
-+char *msg_hlnk_ds = "ャ腟沿";
-+char *msg_hlnk_hs = "腟沿";
- char *msg_hlnk_u  = "URL";
--char *msg_hlnk_s  = "サイト";
--char *msg_hlnk_a  = "エージェント";
--char *msg_hlnk_c  = "国";
--char *msg_hlnk_r  = "リファラー";
--char *msg_hlnk_en = "エントリー";
-+char *msg_hlnk_s  = "泣ゃ";
-+char *msg_hlnk_a  = "若吾с潟";
-+char *msg_hlnk_c  = "";
-+char *msg_hlnk_r  = "<";
-+char *msg_hlnk_en = "潟";
- char *msg_hlnk_ex = "Exit";
--char *msg_hlnk_sr = "検索文字列";
--char *msg_hlnk_i  = "ユーザ数";
-+char *msg_hlnk_sr = "罎膣∽絖";
-+char *msg_hlnk_i  = "若倶";
- 
- /* monthly total table */
--char *msg_mtot_ms = "月の統計";
--char *msg_mtot_th = "全ヒット数";
--char *msg_mtot_tf = "全ファイル数";
--char *msg_mtot_tx = "全 KBytes数";
--char *msg_mtot_us = "個別サイト数";
--char *msg_mtot_ur = "個別リファラー数";
--char *msg_mtot_ua = "個別ユーザエージェント数";
--char *msg_mtot_uu = "個別URL数";
--char *msg_mtot_ui = "個別ユーザ数";
--char *msg_mtot_mhd= "一日あたりのヒット数";
--char *msg_mtot_mhh= "一時間あたりのヒット数";
--char *msg_mtot_mfd= "一日あたりのファイル数";
--char *msg_mtot_mpd= "一日あたりのページ数";
-+char *msg_mtot_ms = "腟沿";
-+char *msg_mtot_th = "";
-+char *msg_mtot_tf = "<ゃ";
-+char *msg_mtot_tx = " KBytes";
-+char *msg_mtot_us = "ャ泣ゃ";
-+char *msg_mtot_ur = "ャ<惹";
-+char *msg_mtot_ua = "ャ若吟若吾с潟";
-+char *msg_mtot_uu = "URL";
-+char *msg_mtot_ui = "ャ若倶";
-+char *msg_mtot_mhd= "筝ャ";
-+char *msg_mtot_mhh= "筝";
-+char *msg_mtot_mfd= "筝ャ<ゃ";
-+char *msg_mtot_mpd= "筝ャ若御";
- char *msg_mtot_msd= "Sites per Day";
--char *msg_mtot_mvd= "一日あたりの訪問者数";
--char *msg_mtot_mkd= "一日あたりのKBytes数";
--char *msg_mtot_rc = "レスポンスコードごとのヒット数";
-+char *msg_mtot_mvd= "筝ャ荐";
-+char *msg_mtot_mkd= "筝ャKBytes";
-+char *msg_mtot_rc = "鴻潟鴻潟若";
- 
- /* daily total table */
--char *msg_dtot_ds = "日ごとの統計";
-+char *msg_dtot_ds = "ャ腟沿";
- 
- /* hourly total table */
--char *msg_htot_hs = "時間ごとの統計";
-+char *msg_htot_hs = "腟沿";
- 
- /* country pie chart */
- char *msg_ctry_use= "Usage by Country for";
- 
- /* top tables */
- /* Formatted as "Top xxx of xxx Total something" */
--char *msg_top_top = "トップ";
-+char *msg_top_top = "";
- char *msg_top_of  = "of";
--char *msg_top_s   = "サイト";
--char *msg_top_u   = "全URL";
--char *msg_top_r   = "リファラー";
--char *msg_top_a   = "ユーザエージェント";
--char *msg_top_c   = "国";
-+char *msg_top_s   = "泣ゃ";
-+char *msg_top_u   = "URL";
-+char *msg_top_r   = "<";
-+char *msg_top_a   = "若吟若吾с潟";
-+char *msg_top_c   = "";
- char *msg_top_en  = "Total Entry Pages";
- char *msg_top_ex  = "Total Exit Pages";
- char *msg_top_sr  = "Total Search Strings";
-@@ -340,7 +340,7 @@ struct response_code response[] =
-          { "Code 504 - Gateway Timeout",                 0 },
-          { "Code 505 - HTTP Version Not Supported",      0 } };
- 
--char *msg_title   = "利用統計";
-+char *msg_title   = "腟沿";
- char *msg_h_other = "Other";
- 
- /* Country codes (previously in ctry.h header file) */