Skip to content

Commit

Permalink
mail/mls: improve and unbreak with -fno-common
Browse files Browse the repository at this point in the history
 - 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
  • Loading branch information
clausecker committed Feb 14, 2023
1 parent 195a90a commit 342a19d
Show file tree
Hide file tree
Showing 9 changed files with 86 additions and 19 deletions.
38 changes: 30 additions & 8 deletions 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>
1 change: 1 addition & 0 deletions mail/mls/distinfo
@@ -1,2 +1,3 @@
TIMESTAMP = 1676377151
SHA256 (mls-1.3.tgz) = f2aabb6010dfe61751ec138a922e7f72a9d0b23f01c955079cb56a5c1673bfea
SIZE (mls-1.3.tgz) = 45481
7 changes: 3 additions & 4 deletions 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)
Expand All @@ -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
Expand All @@ -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 ***"
19 changes: 19 additions & 0 deletions 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
13 changes: 11 additions & 2 deletions 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
Expand All @@ -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,
11 changes: 11 additions & 0 deletions 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);
4 changes: 2 additions & 2 deletions 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"
Expand Down
6 changes: 3 additions & 3 deletions 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);
Expand Down
6 changes: 6 additions & 0 deletions 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...

0 comments on commit 342a19d

Please sign in to comment.