Bug 75386 - [MAINTAINER] Update port: mail/policyd add libgnugetopt dependency
Summary: [MAINTAINER] Update port: mail/policyd add libgnugetopt dependency
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: freebsd-ports-bugs (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-12-22 14:40 UTC by Marcus Grando
Modified: 2004-12-22 21:11 UTC (History)
1 user (show)

See Also:


Attachments
policyd.patch (676 bytes, patch)
2004-12-22 14:40 UTC, Marcus Grando
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Marcus Grando 2004-12-22 14:40:26 UTC
Update port: mail/policyd

* Add devel/libgnugetopt dependency if OSVERSION < 500041
* If this change not need update PORTREVISION, please removeit.
Comment 1 Marcus Grando 2004-12-22 16:24:54 UTC
Please apply this new patch

+ Add devel/libgnugetopt dependency if OSVERSION < 500041
+ Include (-s|--softfailreject) options for reject SOFTFAIL (~all)

--begin--
diff -ruN policyd.old/Makefile policyd/Makefile
--- policyd.old/Makefile	Wed Dec 22 01:43:31 2004
+++ policyd/Makefile	Wed Dec 22 13:58:25 2004
@@ -7,6 +7,7 @@

  PORTNAME=		policyd
  PORTVERSION=		1.0.1
+PORTREVISION=		1
  CATEGORIES=		mail
  MASTER_SITES=		http://www.libspf2.org/patch/

@@ -20,6 +21,12 @@
  CONFIGURE_ENV+=		LDFLAGS="-L${LOCALBASE}/lib"
  GNU_CONFIGURE=		yes

+.include <bsd.port.pre.mk>
+
+.if ${OSVERSION} < 500041
+LIB_DEPENDS+=		gnugetopt.1:${PORTSDIR}/devel/libgnugetopt
+.endif
+
  .if !defined(NOPORTDOCS)
  PORTDOCS=	*
  .endif
@@ -30,4 +37,4 @@
  	${INSTALL_DATA} ${WRKSRC}/README ${DOCSDIR}
  .endif

-.include <bsd.port.mk>
+.include <bsd.port.post.mk>
diff -ruN policyd.old/files/patch-policyd.c policyd/files/patch-policyd.c
--- policyd.old/files/patch-policyd.c	Wed Dec 31 21:00:00 1969
+++ policyd/files/patch-policyd.c	Wed Dec 22 14:13:07 2004
@@ -0,0 +1,93 @@
+--- policyd.c.orig	Thu Jul  8 18:42:25 2004
++++ policyd.c	Wed Dec 22 14:11:59 2004
+@@ -76,6 +76,7 @@
+ 	char	*localpolicy;
+ 	char	*explanation;
+ 	int		 trustedforwarder;
++	int		 softfailreject;
+ 	int		 debug;
+ } config_t;
+
+@@ -106,6 +107,7 @@
+ static const struct option	longopts[] = {
+ 		{ "localpolicy",		required_argument,	NULL, 'l', },
+ 		{ "trustedforwarder",	no_argument,		NULL, 't', },
++		{ "softfailreject",	no_argument,		NULL, 's', },
+ 		{ "explanation",		required_argument,	NULL, 'x', },
+ 		{ "debug",				optional_argument,	NULL, 'd', },
+ 		{ "help",				no_argument,		NULL, 'h', },
+@@ -119,7 +121,7 @@
+ #else
+ #define DOC_LONGOPT(l, v, t, p1) do { } while(0)
+ #endif
+-static const char	*shortopts = "a:h";
++static const char	*shortopts = "ltsxd:h";
+
+ #define DOC_OPT(s, l, v, t, p0, p1) do { \
+ 		fprintf(stderr, "    -%c%c%s%*s" t "\n", \
+@@ -137,6 +139,8 @@
+ 			"Set the SPF local policy.", 21, 10);
+ 	DOC_OPT('t', "trustedforwarder", NULL,
+ 			"Use the trusted-forwarder.com whitelist.", 29, 13);
++	DOC_OPT('s', "softfailreject", NULL,
++			"Reject SOFTFAIL.", 29, 15);
+ 	DOC_OPT('x', "explanation", "<explanation>",
+ 			"Set the SPF explanation.", 16, 5);
+ 	DOC_OPT('d', "debug", "[<level>]",
+@@ -249,7 +253,7 @@
+ }
+
+ static void
+-process_request(request_t *req)
++process_request(request_t *req, config_t *conf)
+ {
+ 	SPF_output_t	output;
+
+@@ -287,6 +291,16 @@
+ 								: ""));
+ 			break;
+ 		case SPF_RESULT_SOFTFAIL:
++			if (conf->softfailreject == 1) {
++				snprintf(req->result, RESULTSIZE,
++							POSTFIX_REJECT " %s",
++							(output.smtp_comment
++								? output.smtp_comment
++								: (output.header_comment
++									? output.header_comment
++									: "")));
++				break;
++			}
+ 		case SPF_RESULT_NEUTRAL:
+ 		case SPF_RESULT_UNKNOWN:
+ 		case SPF_RESULT_NONE:
+@@ -315,6 +329,11 @@
+ 		argv0 = argv[0];
+
+
++	config.localpolicy = NULL;
++	config.explanation = NULL;
++	config.trustedforwarder = 0;
++	config.softfailreject = 0;
++	config.debug = 0;
+ 	while ((c =
+ #ifdef HAVE_GETOPT_LONG
+ 		getopt_long(argc, argv, shortopts, longopts, &idx)
+@@ -329,6 +348,9 @@
+ 			case 't':
+ 				config.trustedforwarder = 1;
+ 				break;
++			case 's':
++				config.softfailreject = 1;
++				break;
+ 			case 'x':
+ 				config.explanation = optarg;
+ 				break;
+@@ -366,7 +388,7 @@
+ 		CHECK(req.client_ip, "client_address")
+ 		else CHECK(req.sender_address, "sender")
+ 		else CHECK(req.helo_address, "helo_name")
+-		else process_request(&req);
++		else process_request(&req, &config);
+
+ 		req.result[RESULTSIZE - 1] = '\0';
+ 		printf("action=%s\n\n", req.result);
--end--

-- 
Marcus Grando
Grupos Internet S/A
marcus(at)corp.grupos.com.br
Comment 2 Marcus Grando 2004-12-22 17:44:59 UTC
Please, wait for a new patch...

Regards

-- 
Marcus Grando
Grupos Internet S/A
marcus(at)corp.grupos.com.br
Comment 3 Marcus Grando 2004-12-22 18:06:13 UTC
Now, this patch are correct...

+ Add devel/libgnugetopt dependency if OSVERSION < 500041
+ Include (-s|--softfailreject) options for SOFTFAIL reject (~all)
+ Fix *optstring in getopt(), old options don't work.

Please apply.

--begin patch--
diff -ruN policyd.old/Makefile policyd/Makefile
--- policyd.old/Makefile	Wed Dec 22 01:43:31 2004
+++ policyd/Makefile	Wed Dec 22 15:52:24 2004
@@ -7,6 +7,7 @@

  PORTNAME=		policyd
  PORTVERSION=		1.0.1
+PORTREVISION=		1
  CATEGORIES=		mail
  MASTER_SITES=		http://www.libspf2.org/patch/

@@ -20,6 +21,12 @@
  CONFIGURE_ENV+=		LDFLAGS="-L${LOCALBASE}/lib"
  GNU_CONFIGURE=		yes

+.include <bsd.port.pre.mk>
+
+.if ${OSVERSION} < 500041
+LIB_DEPENDS+=		gnugetopt.1:${PORTSDIR}/devel/libgnugetopt
+.endif
+
  .if !defined(NOPORTDOCS)
  PORTDOCS=	*
  .endif
@@ -30,4 +37,4 @@
  	${INSTALL_DATA} ${WRKSRC}/README ${DOCSDIR}
  .endif

-.include <bsd.port.mk>
+.include <bsd.port.post.mk>
diff -ruN policyd.old/files/patch-policyd.c policyd/files/patch-policyd.c
--- policyd.old/files/patch-policyd.c	Wed Dec 31 21:00:00 1969
+++ policyd/files/patch-policyd.c	Wed Dec 22 15:56:02 2004
@@ -0,0 +1,106 @@
+--- policyd.c.orig	Thu Jul  8 18:42:25 2004
++++ policyd.c	Wed Dec 22 15:55:22 2004
+@@ -76,6 +76,7 @@
+ 	char	*localpolicy;
+ 	char	*explanation;
+ 	int		 trustedforwarder;
++	int		 softfailreject;
+ 	int		 debug;
+ } config_t;
+
+@@ -106,6 +107,7 @@
+ static const struct option	longopts[] = {
+ 		{ "localpolicy",		required_argument,	NULL, 'l', },
+ 		{ "trustedforwarder",	no_argument,		NULL, 't', },
++		{ "softfailreject",	no_argument,		NULL, 's', },
+ 		{ "explanation",		required_argument,	NULL, 'x', },
+ 		{ "debug",				optional_argument,	NULL, 'd', },
+ 		{ "help",				no_argument,		NULL, 'h', },
+@@ -119,7 +121,7 @@
+ #else
+ #define DOC_LONGOPT(l, v, t, p1) do { } while(0)
+ #endif
+-static const char	*shortopts = "a:h";
++static const char	*shortopts = "l:x:d:tsh";
+
+ #define DOC_OPT(s, l, v, t, p0, p1) do { \
+ 		fprintf(stderr, "    -%c%c%s%*s" t "\n", \
+@@ -137,10 +139,12 @@
+ 			"Set the SPF local policy.", 21, 10);
+ 	DOC_OPT('t', "trustedforwarder", NULL,
+ 			"Use the trusted-forwarder.com whitelist.", 29, 13);
++	DOC_OPT('s', "softfailreject", NULL,
++			"Reject SOFTFAIL.", 29, 15);
+ 	DOC_OPT('x', "explanation", "<explanation>",
+ 			"Set the SPF explanation.", 16, 5);
+-	DOC_OPT('d', "debug", "[<level>]",
+-			"Set the debug level.", 20, 15);
++	DOC_OPT('d', "debug", "<level>",
++			"Set the debug level.", 22, 17);
+ 	DOC_OPT('h', "help", NULL,
+ 			"Display this help.", 29, 25);
+ }
+@@ -249,7 +253,7 @@
+ }
+
+ static void
+-process_request(request_t *req)
++process_request(request_t *req, config_t *conf)
+ {
+ 	SPF_output_t	output;
+
+@@ -287,6 +291,16 @@
+ 								: ""));
+ 			break;
+ 		case SPF_RESULT_SOFTFAIL:
++			if (conf->softfailreject == 1) {
++				snprintf(req->result, RESULTSIZE,
++							POSTFIX_REJECT " %s",
++							(output.smtp_comment
++								? output.smtp_comment
++								: (output.header_comment
++									? output.header_comment
++									: "")));
++				break;
++			}
+ 		case SPF_RESULT_NEUTRAL:
+ 		case SPF_RESULT_UNKNOWN:
+ 		case SPF_RESULT_NONE:
+@@ -315,6 +329,11 @@
+ 		argv0 = argv[0];
+
+
++	config.localpolicy = NULL;
++	config.explanation = NULL;
++	config.trustedforwarder = 0;
++	config.softfailreject = 0;
++	config.debug = 0;
+ 	while ((c =
+ #ifdef HAVE_GETOPT_LONG
+ 		getopt_long(argc, argv, shortopts, longopts, &idx)
+@@ -329,12 +348,15 @@
+ 			case 't':
+ 				config.trustedforwarder = 1;
+ 				break;
++			case 's':
++				config.softfailreject = 1;
++				break;
+ 			case 'x':
+ 				config.explanation = optarg;
+ 				break;
+ 			case 'd':
+ 				if (optarg)
+-					config.debug = atol(optarg);
++					config.debug = atoi(optarg);
+ 				else
+ 					config.debug = 1;
+ 				break;
+@@ -366,7 +388,7 @@
+ 		CHECK(req.client_ip, "client_address")
+ 		else CHECK(req.sender_address, "sender")
+ 		else CHECK(req.helo_address, "helo_name")
+-		else process_request(&req);
++		else process_request(&req, &config);
+
+ 		req.result[RESULTSIZE - 1] = '\0';
+ 		printf("action=%s\n\n", req.result);
--end path--

-- 
Marcus Grando
Grupos Internet S/A
marcus(at)corp.grupos.com.br
Comment 4 Edwin Groothuis freebsd_committer freebsd_triage 2004-12-22 21:07:56 UTC
State Changed
From-To: open->closed

Committed, thanks! 
I have used USE_GETOPT_LONG instead of the LIB_DEPENDS, but that 
does do the same.