Theo Buehler <[email protected]> writes:

> This is straightforward. I don't have a sendmail setup with logs to test
> this against...
>
> FreeBSD moved all variable definitions from sma.h to sma.c and externed
> them in the header. I decided to move a few of them into init.c since
> they're allocated/initialized there (usually via strdup). They're never
> freed.

OK gnezdo

>
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/mail/sma/Makefile,v
> retrieving revision 1.10
> diff -u -p -r1.10 Makefile
> --- Makefile  12 Jul 2019 20:47:38 -0000      1.10
> +++ Makefile  23 Feb 2021 21:58:56 -0000
> @@ -4,7 +4,7 @@ COMMENT=      Sendmail Log Analysis Report
>  
>  VERSION=     1.4
>  DISTNAME=    sma-${VERSION}
> -REVISION=    1
> +REVISION=    2
>  CATEGORIES=  mail
>  
>  HOMEPAGE=    http://www.klake.org/sma/
> Index: patches/patch-Makefile
> ===================================================================
> RCS file: /cvs/ports/mail/sma/patches/patch-Makefile,v
> retrieving revision 1.4
> diff -u -p -r1.4 patch-Makefile
> --- patches/patch-Makefile    25 Jan 2005 06:57:45 -0000      1.4
> +++ patches/patch-Makefile    23 Feb 2021 22:00:10 -0000
> @@ -1,8 +1,9 @@
>  $OpenBSD: patch-Makefile,v 1.4 2005/01/25 06:57:45 matthieu Exp $
> ---- Makefile.orig    Sat Dec 28 15:38:05 2002
> -+++ Makefile Sun Jan  9 10:26:36 2005
> -@@ -2,12 +2,12 @@
> - # $Id: patch-Makefile,v 1.4 2005/01/25 06:57:45 matthieu Exp $
> +
> +Index: Makefile
> +--- Makefile.orig
> ++++ Makefile
> +@@ -3,11 +3,11 @@
>   #
>   
>  -BINDIR = /usr/local/bin
> Index: patches/patch-init_c
> ===================================================================
> RCS file: patches/patch-init_c
> diff -N patches/patch-init_c
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-init_c      23 Feb 2021 21:58:03 -0000
> @@ -0,0 +1,33 @@
> +$OpenBSD$
> +
> +Fix for -fno-common
> +
> +Index: init.c
> +--- init.c.orig
> ++++ init.c
> +@@ -34,6 +34,25 @@
> + 
> + int isspace(int);
> + 
> ++int pgflag;
> ++const char *bechar;
> ++const char *cfchar;
> ++const char *puchar;
> ++const char *pachar;
> ++const char *plchar;
> ++const char *ppchar;
> ++const char *htchar;
> ++const char *ftchar;
> ++int csflag;
> ++int lrflag;
> ++int rrflag;
> ++int clsflag;
> ++unsigned int stnum;
> ++unsigned int rsnum;
> ++unsigned int rsrnum;
> ++unsigned int epnum;
> ++unsigned int rpnum;
> ++
> + void
> + init(FILE *conf) {
> +     char buff[1024];
> Index: patches/patch-sma_c
> ===================================================================
> RCS file: patches/patch-sma_c
> diff -N patches/patch-sma_c
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-sma_c       23 Feb 2021 21:58:00 -0000
> @@ -0,0 +1,115 @@
> +$OpenBSD$
> +
> +Fix for -fno-common
> +
> +Index: sma.c
> +--- sma.c.orig
> ++++ sma.c
> +@@ -34,6 +34,107 @@ extern int sma_optind;
> + 
> + #include "sma.h"
> + 
> ++/* pointer to program name: */
> ++char *pname;
> ++
> ++/* current time: */
> ++time_t tval;
> ++struct tm *curr;
> ++struct tm tp;
> ++
> ++/*
> ++ * Command line arguments
> ++ * xflag sets argument x on/off
> ++ * xchar is pointer to argument string if x requires an argument
> ++ */
> ++int aflag;
> ++int cflag;
> ++int dflag;
> ++int hflag;
> ++int nflag;
> ++int sflag;
> ++int qflag;
> ++int lflag;
> ++int vflag;
> ++int wflag;
> ++unsigned int lnum;
> ++unsigned int lrnum;
> ++int rflag;
> ++unsigned int rnum;
> ++unsigned int rrnum;
> ++int bflag;
> ++const char *bchar;
> ++int fflag;
> ++const char *fchar;
> ++int oflag;
> ++const char *ochar;
> ++int Lflag;
> ++const char *Lchar;
> ++int Oflag;
> ++const char *Ochar;
> ++int Dflag;
> ++const char *Dchar;
> ++int pflag;
> ++int iflag;
> ++int tflag;
> ++int dcaddrflag;
> ++const char *tchar;
> ++
> ++/* Configuration file parameters: */
> ++int Hflag;
> ++const char *Hchar;
> ++int Cflag;
> ++const char *Cchar;
> ++int Fflag;
> ++const char *tbchar;
> ++
> ++/* Start and end times: */
> ++char *sstring;
> ++char *estring;
> ++char *tstring;
> ++time_t sstime;
> ++time_t eetime;
> ++int syear;
> ++int smonth;
> ++int sday;
> ++int shour;
> ++int sminute;
> ++int ssecond;
> ++int eyear;
> ++int emonth;
> ++int eday;
> ++int ehour;
> ++int eminute;
> ++int esecond;
> ++
> ++/* hash table sizes: */
> ++int asize;
> ++int rsize;
> ++char *hsstring;
> ++char *hastring;
> ++char *hrstring;
> ++
> ++/* Filters */
> ++char *sef;
> ++char *ref;
> ++char *srf;
> ++char *rrf;
> ++#ifdef USE_REGEXP
> ++regex_t csef;
> ++regex_t cref;
> ++regex_t csrf;
> ++regex_t crrf;
> ++#endif
> ++
> ++/* Output file handle: */
> ++FILE *ofp;
> ++
> ++/* total number of hosts: */
> ++int hosts;
> ++
> ++/* inital host structure: */
> ++struct host first;
> ++
> + int
> + main(int argc, char **argv) {
> +     FILE *fp = NULL;
> Index: patches/patch-sma_h
> ===================================================================
> RCS file: patches/patch-sma_h
> diff -N patches/patch-sma_h
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-sma_h       23 Feb 2021 21:58:24 -0000
> @@ -0,0 +1,229 @@
> +$OpenBSD$
> +
> +Fix for -fno-common
> +
> +Index: sma.h
> +--- sma.h.orig
> ++++ sma.h
> +@@ -55,102 +55,102 @@
> + #define FORMAT_CLOG 5
> + 
> + /* pointer to program name: */
> +-char *pname;
> ++extern char *pname;
> + 
> + /* current time: */
> +-time_t tval;
> +-struct tm *curr;
> +-struct tm tp;
> ++extern time_t tval;
> ++extern struct tm *curr;
> ++extern struct tm tp;
> + 
> + /*
> +  * Command line arguments
> +  * xflag sets argument x on/off
> +  * xchar is pointer to argument string if x requires an argument
> +  */
> +-int aflag;
> +-int cflag;
> +-int dflag;
> +-int hflag;
> +-int nflag;
> +-int sflag;
> +-int qflag;
> +-int lflag;
> +-int vflag;
> +-int wflag;
> +-unsigned int lnum;
> +-unsigned int lrnum;
> +-int rflag;
> +-unsigned int rnum;
> +-unsigned int rrnum;
> +-int bflag;
> +-const char *bchar;
> +-int fflag;
> +-const char *fchar;
> +-int oflag;
> +-const char *ochar;
> +-int Lflag;
> +-const char *Lchar;
> +-int Oflag;
> +-const char *Ochar;
> +-int Dflag;
> +-const char *Dchar;
> +-int pflag;
> +-int iflag;
> +-int tflag;
> +-int dcaddrflag;
> +-const char *tchar;
> ++extern int aflag;
> ++extern int cflag;
> ++extern int dflag;
> ++extern int hflag;
> ++extern int nflag;
> ++extern int sflag;
> ++extern int qflag;
> ++extern int lflag;
> ++extern int vflag;
> ++extern int wflag;
> ++extern unsigned int lnum;
> ++extern unsigned int lrnum;
> ++extern int rflag;
> ++extern unsigned int rnum;
> ++extern unsigned int rrnum;
> ++extern int bflag;
> ++extern const char *bchar;
> ++extern int fflag;
> ++extern const char *fchar;
> ++extern int oflag;
> ++extern const char *ochar;
> ++extern int Lflag;
> ++extern const char *Lchar;
> ++extern int Oflag;
> ++extern const char *Ochar;
> ++extern int Dflag;
> ++extern const char *Dchar;
> ++extern int pflag;
> ++extern int iflag;
> ++extern int tflag;
> ++extern int dcaddrflag;
> ++extern const char *tchar;
> + 
> + /* Configuration file parameters: */
> +-int Hflag;
> +-const char *Hchar;
> +-int Cflag;
> +-const char *Cchar;
> +-int Fflag;
> +-const char *tbchar;
> +-int pgflag;
> +-const char *bechar;
> +-const char *cfchar;
> +-const char *puchar;
> +-const char *pachar;
> +-const char *plchar;
> +-const char *ppchar;
> +-const char *htchar;
> +-const char *ftchar;
> +-int csflag;
> +-int lrflag;
> +-int rrflag;
> +-int clsflag;
> +-unsigned int stnum;
> +-unsigned int rsnum;
> +-unsigned int rsrnum;
> +-unsigned int epnum;
> +-unsigned int rpnum;
> ++extern int Hflag;
> ++extern const char *Hchar;
> ++extern int Cflag;
> ++extern const char *Cchar;
> ++extern int Fflag;
> ++extern const char *tbchar;
> ++extern int pgflag;
> ++extern const char *bechar;
> ++extern const char *cfchar;
> ++extern const char *puchar;
> ++extern const char *pachar;
> ++extern const char *plchar;
> ++extern const char *ppchar;
> ++extern const char *htchar;
> ++extern const char *ftchar;
> ++extern int csflag;
> ++extern int lrflag;
> ++extern int rrflag;
> ++extern int clsflag;
> ++extern unsigned int stnum;
> ++extern unsigned int rsnum;
> ++extern unsigned int rsrnum;
> ++extern unsigned int epnum;
> ++extern unsigned int rpnum;
> + 
> + /* Start and end times: */
> +-char *sstring;
> +-char *estring;
> +-char *tstring;
> +-time_t sstime;
> +-time_t eetime;
> +-int syear;
> +-int smonth;
> +-int sday;
> +-int shour;
> +-int sminute;
> +-int ssecond;
> +-int eyear;
> +-int emonth;
> +-int eday;
> +-int ehour;
> +-int eminute;
> +-int esecond;
> ++extern char *sstring;
> ++extern char *estring;
> ++extern char *tstring;
> ++extern time_t sstime;
> ++extern time_t eetime;
> ++extern int syear;
> ++extern int smonth;
> ++extern int sday;
> ++extern int shour;
> ++extern int sminute;
> ++extern int ssecond;
> ++extern int eyear;
> ++extern int emonth;
> ++extern int eday;
> ++extern int ehour;
> ++extern int eminute;
> ++extern int esecond;
> + 
> + /* hash table sizes: */
> +-int asize;
> +-int rsize;
> +-char *hsstring;
> +-char *hastring;
> +-char *hrstring;
> ++extern int asize;
> ++extern int rsize;
> ++extern char *hsstring;
> ++extern char *hastring;
> ++extern char *hrstring;
> + 
> + /* sender structure: */
> + struct in {
> +@@ -456,25 +456,25 @@ struct host {
> + };
> + 
> + /* Filters */
> +-char *sef;
> +-char *ref;
> +-char *srf;
> +-char *rrf;
> ++extern char *sef;
> ++extern char *ref;
> ++extern char *srf;
> ++extern char *rrf;
> + #ifdef USE_REGEXP
> +-regex_t csef;
> +-regex_t cref;
> +-regex_t csrf;
> +-regex_t crrf;
> ++extern regex_t csef;
> ++extern regex_t cref;
> ++extern regex_t csrf;
> ++extern regex_t crrf;
> + #endif
> + 
> + /* Output file handle: */
> +-FILE *ofp;
> ++extern FILE *ofp;
> + 
> + /* total number of hosts: */
> +-int hosts;
> ++extern int hosts;
> + 
> + /* inital host structure: */
> +-struct host first;
> ++extern struct host first;
> + 
> + /* function definitions: */
> + void usage(void);
> Index: pkg/PLIST
> ===================================================================
> RCS file: /cvs/ports/mail/sma/pkg/PLIST,v
> retrieving revision 1.3
> diff -u -p -r1.3 PLIST
> --- pkg/PLIST 9 Aug 2004 14:34:38 -0000       1.3
> +++ pkg/PLIST 23 Feb 2021 22:00:48 -0000
> @@ -1,5 +1,5 @@
>  @comment $OpenBSD: PLIST,v 1.3 2004/08/09 14:34:38 xsa Exp $
> -bin/sma
> +@bin bin/sma
>  @man man/man8/sma.8
>  share/doc/sma/
>  share/doc/sma/README

Reply via email to