git: 342a19d2da54 - main - mail/mls: improve and unbreak with -fno-common

From: Robert Clausecker <fuz_at_FreeBSD.org>
Date: Tue, 14 Feb 2023 20:23:48 UTC
The branch main has been updated by fuz:

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

commit 342a19d2da54e08fc124722bf9d91b75303582df
Author:     Robert Clausecker <fuz@FreeBSD.org>
AuthorDate: 2023-02-09 15:20:28 +0000
Commit:     Robert Clausecker <fuz@FreeBSD.org>
CommitDate: 2023-02-14 20:18:57 +0000

    mail/mls: improve and unbreak with -fno-common
    
     - liberally sprinkle extern all over the place
     - define LICENSE
     - take over maintainership of this unmaintained port
     - ship examples and html files
     - define DOCS and EXAMPLES options
     - pacify portlint and portclippy
     - add a pkg-message as the author intended
     - remove dead MASTER_SITES entry
    
    PR:             259586
    Approved by:    flo (mentor)
    Differential Revision: https://reviews.freebsd.org/D38516
---
 mail/mls/Makefile                | 38 ++++++++++++++++++++++++++++++--------
 mail/mls/distinfo                |  1 +
 mail/mls/files/patch-Makefile    |  7 +++----
 mail/mls/files/patch-mls.c       | 19 +++++++++++++++++++
 mail/mls/files/patch-mls.h       | 13 +++++++++++--
 mail/mls/files/patch-mls__mime.h | 11 +++++++++++
 mail/mls/files/patch-mls_text.c  |  4 ++--
 mail/mls/files/patch-mls_text.h  |  6 +++---
 mail/mls/files/pkg-message.in    |  6 ++++++
 9 files changed, 86 insertions(+), 19 deletions(-)

diff --git a/mail/mls/Makefile b/mail/mls/Makefile
index 1f6817206318..525ba910f747 100644
--- a/mail/mls/Makefile
+++ b/mail/mls/Makefile
@@ -1,21 +1,43 @@
 PORTNAME=	mls
 PORTVERSION=	1.3
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	mail
-MASTER_SITES=	http://www.marki-online.net/MLS/ \
-		http://marki.host.sk/MLS/
-EXTRACT_SUFX=	.tgz
+MASTER_SITES=	https://www.marki-online.net/MLS/
 
-MAINTAINER=	ports@FreeBSD.org
+MAINTAINER=	fuz@FreeBSD.org
 COMMENT=	Program for generating various statistics on emails
 WWW=		https://www.marki-online.net/MLS/
 
-BROKEN_FreeBSD_13=	ld: error: duplicate symbol: r_base64
-BROKEN_FreeBSD_14=	ld: error: duplicate symbol: r_base64
+LICENSE=	GPLv2
+LICENSE_FILE=	${WRKSRC}/COPYING.gz
 
-PLIST_FILES=	bin/mls man/man1/mls.1.gz
+USES=		tar:tgz
 
 MAKE_ARGS+=	CC="${CC}" CFLAGS="${CFLAGS}"
 ALL_TARGET=	mls
 
+SUB_FILES=	pkg-message
+PLIST_FILES=	bin/mls man/man1/mls.1.gz
+PORTDATA=	html/bar.gif html/mls_class.php html/style_mls.css
+PORTDOCS=	README.txt
+PORTEXAMPLES=	README example.php forward procmailrc
+
+OPTIONS_DEFINE=	DOCS EXAMPLES
+
+post-install:
+	${MKDIR} ${STAGEDIR}${DATADIR}/html
+.for f in ${PORTDATA}
+	${INSTALL_DATA} ${WRKSRC}/$f ${STAGEDIR}${DATADIR}/html/
+.endfor
+
+post-install-DOCS-on:
+	${MKDIR} ${STAGEDIR}${DOCSDIR}
+	${INSTALL_DATA} ${WRKSRC}/README.txt ${STAGEDIR}${DOCSDIR}
+
+post-install-EXAMPLES-on:
+	${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
+.for f in ${PORTEXAMPLES}
+	${INSTALL_DATA} ${WRKSRC}/examples/$f ${STAGEDIR}${EXAMPLESDIR}
+.endfor
+
 .include <bsd.port.mk>
diff --git a/mail/mls/distinfo b/mail/mls/distinfo
index 9744e80f89fb..07a2f06b9986 100644
--- a/mail/mls/distinfo
+++ b/mail/mls/distinfo
@@ -1,2 +1,3 @@
+TIMESTAMP = 1676377151
 SHA256 (mls-1.3.tgz) = f2aabb6010dfe61751ec138a922e7f72a9d0b23f01c955079cb56a5c1673bfea
 SIZE (mls-1.3.tgz) = 45481
diff --git a/mail/mls/files/patch-Makefile b/mail/mls/files/patch-Makefile
index 750a2835af74..3bd3e25bbb1c 100644
--- a/mail/mls/files/patch-Makefile
+++ b/mail/mls/files/patch-Makefile
@@ -1,5 +1,5 @@
---- Makefile.orig	2003-06-10 22:26:51.000000000 +0200
-+++ Makefile	2014-06-04 13:39:49.442936071 +0200
+--- Makefile.orig	2003-06-10 20:26:51 UTC
++++ Makefile
 @@ -5,13 +5,13 @@
  
  # -m386 (486,pentium,pentiumpro)
@@ -16,7 +16,7 @@
  CFLAGS=-Wall $(OPTIMIZE) $(DEBUG)
  LIBS=-lm
  CC=gcc
-@@ -37,9 +37,9 @@
+@@ -37,9 +37,8 @@ mls_text.o: mls_text.c mls_text.h mls_lang.h Makefile
  	$(CC) $(CFLAGS) -c mls_text.c -o mls_text.o
  
  install: mls
@@ -25,7 +25,6 @@
 -	gzip -9f $(DESTDIR)/man/man1/mls.1
 +	$(BSD_INSTALL_PROGRAM) mls $(DESTDIR)$(PREFIX)/bin
 +	$(BSD_INSTALL_MAN) mls.1 $(DESTDIR)$(PREFIX)/man/man1
-+	gzip -9f $(DESTDIR)$(PREFIX)/man/man1/mls.1
  	@echo "**************************************************************"
  	@echo "*** To use HTML feature or PHP wrapper, copy contents of   ***"
  	@echo "*** 'html' subdirectory to location accessible by your     ***"
diff --git a/mail/mls/files/patch-mls.c b/mail/mls/files/patch-mls.c
new file mode 100644
index 000000000000..bafc3a7df383
--- /dev/null
+++ b/mail/mls/files/patch-mls.c
@@ -0,0 +1,19 @@
+--- mls.c.orig	2003-05-27 21:47:26 UTC
++++ mls.c
+@@ -51,6 +51,16 @@ time_t t;          // actual time - to be added to out
+ time_t t_oldest,
+        t_newest;   // date of oldest/newest message found
+ 
++// Reg. expressions
++regex_t r_from, r_time, r_re, r_date, r_dow, r_mail,
++        r_m_ims, r_m_bat, r_m_lot, r_m_oue, r_m_ouc, r_m_oum, r_m_out,
++        r_m_cal, r_m_moz, r_m_peg, r_m_eud, r_m_ope, r_m_opw, r_m_pos,
++        r_m_pob, r_m_kma, r_m_imp, r_m_mut, r_m_pin, r_m_pi2, r_m_syl,
++        r_m_pan, r_m_4td, r_m_fag, r_m_mpg, r_m_xws, r_m_knd, r_m_hst,
++        r_m_nnr;
++
++regex_t r_qp, r_base64, r_hex;
++
+ /* ************************************************* Other * FUNCTIONS *** */
+ /* ***** banner ********************************************************** */
+ void banner() { // print greeting banner
diff --git a/mail/mls/files/patch-mls.h b/mail/mls/files/patch-mls.h
index 1a0883f8dc8d..753f07413a17 100644
--- a/mail/mls/files/patch-mls.h
+++ b/mail/mls/files/patch-mls.h
@@ -1,5 +1,5 @@
---- mls.h.orig	2007-08-26 03:26:30.000000000 +0800
-+++ mls.h	2007-08-26 03:27:11.000000000 +0800
+--- mls.h.orig	2003-06-02 11:26:34 UTC
++++ mls.h
 @@ -75,6 +75,9 @@
  #define EXIT_NOMEM  4
  #define EXIT_REGEX  5
@@ -10,3 +10,12 @@
  /* *** structures for BEST messages *** */
  typedef struct bestQUOTE* nQptr;
  struct bestQUOTE {
+@@ -104,7 +107,7 @@ struct bestTEXT {
+ };
+ 
+ // Reg. expressions
+-regex_t r_from, r_time, r_re, r_date, r_dow, r_mail,
++extern regex_t r_from, r_time, r_re, r_date, r_dow, r_mail,
+         r_m_ims, r_m_bat, r_m_lot, r_m_oue, r_m_ouc, r_m_oum, r_m_out,
+ 	r_m_cal, r_m_moz, r_m_peg, r_m_eud, r_m_ope, r_m_opw, r_m_pos,
+ 	r_m_pob, r_m_kma, r_m_imp, r_m_mut, r_m_pin, r_m_pi2, r_m_syl,
diff --git a/mail/mls/files/patch-mls__mime.h b/mail/mls/files/patch-mls__mime.h
new file mode 100644
index 000000000000..722884fe9e6e
--- /dev/null
+++ b/mail/mls/files/patch-mls__mime.h
@@ -0,0 +1,11 @@
+--- mls_mime.h.orig	2021-11-01 09:11:54 UTC
++++ mls_mime.h
+@@ -21,7 +21,7 @@
+ #ifndef	_MLS_MIME_H
+ #define	_MLS_MIME_H	1
+ 
+-regex_t r_qp, r_base64, r_hex;
++extern regex_t r_qp, r_base64, r_hex;
+ 
+ /* ********************************************* FUNCTION DECLARATIONS *** */
+ int base64_table(char *lookup);
diff --git a/mail/mls/files/patch-mls_text.c b/mail/mls/files/patch-mls_text.c
index 20a5fd18403e..e2052bf1dd09 100644
--- a/mail/mls/files/patch-mls_text.c
+++ b/mail/mls/files/patch-mls_text.c
@@ -1,5 +1,5 @@
---- mls_text.c.orig	2007-08-26 03:28:10.000000000 +0800
-+++ mls_text.c	2007-08-26 03:28:32.000000000 +0800
+--- mls_text.c.orig	2003-05-27 20:07:13 UTC
++++ mls_text.c
 @@ -22,9 +22,6 @@
  #include "mls_lang.h"
  #include "mls_stat.h"
diff --git a/mail/mls/files/patch-mls_text.h b/mail/mls/files/patch-mls_text.h
index d72686def995..9e70e1eaeace 100644
--- a/mail/mls/files/patch-mls_text.h
+++ b/mail/mls/files/patch-mls_text.h
@@ -1,6 +1,6 @@
---- mls_text.h.orig	2007-08-26 03:29:23.000000000 +0800
-+++ mls_text.h	2007-08-26 03:30:12.000000000 +0800
-@@ -30,7 +30,7 @@
+--- mls_text.h.orig	2003-02-15 10:16:07 UTC
++++ mls_text.h
+@@ -30,7 +30,7 @@ void PrintTop(nTptr, int);
  void PrintTopQ(nTptr, int);
  void PrintTopHtml(nTptr, int);
  void PrintGraph(long[], int, int);
diff --git a/mail/mls/files/pkg-message.in b/mail/mls/files/pkg-message.in
new file mode 100644
index 000000000000..eb8948d11027
--- /dev/null
+++ b/mail/mls/files/pkg-message.in
@@ -0,0 +1,6 @@
+To use the HTML feature or the PHP wrapper, copy the
+contents of %%DATADIR%%/html to a location
+accessible by your webserver.  For more information,
+see %%DOCSDIR%%/README.txt!
+
+See also %%EXAMPLESDIR%% for some hints...