From nobody@FreeBSD.org  Fri Jun 21 09:55:02 2013
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1])
	by hub.freebsd.org (Postfix) with ESMTP id 7D2C8B47
	for <freebsd-gnats-submit@FreeBSD.org>; Fri, 21 Jun 2013 09:55:02 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from oldred.freebsd.org (oldred.freebsd.org [8.8.178.121])
	by mx1.freebsd.org (Postfix) with ESMTP id 57134174E
	for <freebsd-gnats-submit@FreeBSD.org>; Fri, 21 Jun 2013 09:55:02 +0000 (UTC)
Received: from oldred.freebsd.org ([127.0.1.6])
	by oldred.freebsd.org (8.14.5/8.14.7) with ESMTP id r5L9t1Hw086278
	for <freebsd-gnats-submit@FreeBSD.org>; Fri, 21 Jun 2013 09:55:01 GMT
	(envelope-from nobody@oldred.freebsd.org)
Received: (from nobody@localhost)
	by oldred.freebsd.org (8.14.5/8.14.5/Submit) id r5L9t1Nh086277;
	Fri, 21 Jun 2013 09:55:01 GMT
	(envelope-from nobody)
Message-Id: <201306210955.r5L9t1Nh086277@oldred.freebsd.org>
Date: Fri, 21 Jun 2013 09:55:01 GMT
From: John Marino <draco@marino.st>
To: freebsd-gnats-submit@FreeBSD.org
Subject: mysql51-client: Remove unneeded patch that breaks build
X-Send-Pr-Version: www-3.1
X-GNATS-Notify:

>Number:         179806
>Category:       ports
>Synopsis:       databases/mysql51-client: Remove unneeded patch that breaks build
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    ale
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Jun 21 10:00:00 UTC 2013
>Closed-Date:    Mon Aug 12 13:09:11 UTC 2013
>Last-Modified:  Mon Aug 12 13:09:11 UTC 2013
>Originator:     John Marino
>Release:        
>Organization:
>Environment:
>Description:
The patch "patch-include_my_tcpd.h" is no longer needed by mysql51.  In fact, it seems that the previous version didn't need it either.

It doesn't apply anymore.
The functionality it wants to add is now present in include/my_tcpd.h

Removing the patch completely allows mysql51 to build again.
>How-To-Repeat:

>Fix:
verify that patch-include_my_tcpd.h no longer applies with "make patch", then remove it and build mysql51-client.

>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-ports-bugs->ale 
Responsible-Changed-By: edwin 
Responsible-Changed-When: Fri Jun 21 10:29:24 UTC 2013 
Responsible-Changed-Why:  
Over to maintainer (via the GNATS Auto Assign Tool) 

http://www.freebsd.org/cgi/query-pr.cgi?pr=179806 

From: John Marino <freebsd.contact@marino.st>
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/179806: databases/mysql51-client: Remove unneeded patch
 that breaks build
Date: Thu, 18 Jul 2013 10:16:30 +0200

 ping.  This PR has been around 4 weeks.
 Do you want me to take over responsibility for PR and commit the fix?
 John

From: John Marino <draco@marino.st>
To: bug-followup@FreeBSD.org, ale@freebsd.org
Cc:  
Subject: Re: ports/179806: databases/mysql51-client: Remove unneeded patch
 that breaks build
Date: Mon, 22 Jul 2013 17:18:37 +0200

 This is a multi-part message in MIME format.
 --------------060302090907040601090509
 Content-Type: text/plain; charset=ISO-8859-1
 Content-Transfer-Encoding: 7bit
 
 As a follow-up to a private mail:
 
 As I said in the "Description", patch-include_my_tcpd.h is obsolete.  It
 doesn't apply on DragonFly dports, failing with an "unordered hunks"
 message.  It shouldn't apply on FreeBSD either, but no error is seen.
 
 I have attached two files to this post:
 1) The original file obtained from "make extract"
 2) The patch
 
 A quick inspect should confirm these two things:
 1) The patch shouldn't apply due to major differences
 2) The patch is no longer needed.  The functionality that the patch
 tries to add is already included.
 
 One theory is that the patch is failing silently on FreeBSD and the file
 is never changed, and it builds normally.  I'd need to boot up a FreeBSD
 box to test this theory.
 
 I encourage Alex to review both of these files and independently
 confirm.  And if he agrees, remove the patch from mysql51-server/files.
  Mysql51-client should still build.
 
 Regards,
 John
 
 --------------060302090907040601090509
 Content-Type: text/x-chdr;
  name="patch-include_my_tcpd.h"
 Content-Transfer-Encoding: 7bit
 Content-Disposition: attachment;
  filename="patch-include_my_tcpd.h"
 
 --- include/my_tcpd.h.orig	Sun Jan  9 13:33:51 2005
 +++ include/my_tcpd.h	Sun Jan  9 13:41:42 2005
 @@ -6,6 +6,25 @@
    * $FreeBSD: databases/mysql51-server/files/patch-include_my_tcpd.h 300896 2012-07-14 13:54:48Z beat $
    */
  
 +#ifndef _TCPWRAPPERS_TCPD_H
 +#define _TCPWRAPPERS_TCPD_H
 +
 +/* someone else may have defined this */
 +#undef  __P
 +
 +/* use prototypes if we have an ANSI C compiler or are using C++ */
 +#if defined(__STDC__) || defined(__cplusplus)
 +#define __P(args)       args
 +#else
 +#define __P(args)       ()
 +#endif
 +
 +/* Need definitions of struct sockaddr_in and FILE. */
 +#include <netinet/in.h>
 +#include <stdio.h>
 +
 +__BEGIN_DECLS
 +
  /* Structure to describe one communications endpoint. */
  
  #define STRING_LENGTH	128		/* hosts, users, processes */
 @@ -31,10 +50,10 @@
      char    pid[10];			/* access via eval_pid(request) */
      struct host_info client[1];		/* client endpoint info */
      struct host_info server[1];		/* server endpoint info */
 -    void  (*sink) ();			/* datagram sink function or 0 */
 -    void  (*hostname) ();		/* address to printable hostname */
 -    void  (*hostaddr) ();		/* address to printable address */
 -    void  (*cleanup) ();		/* cleanup function or 0 */
 +    void  (*sink) __P((int));		/* datagram sink function or 0 */
 +    void  (*hostname) __P((struct host_info *)); /* address to printable hostname */
 +    void  (*hostaddr) __P((struct host_info *)); /* address to printable address */
 +    void  (*cleanup) __P((struct request_info *)); /* cleanup function or 0 */
      struct netconfig *config;		/* netdir handle */
  };
  
 @@ -67,20 +86,23 @@
  /* Global functions. */
  
  #if defined(TLI) || defined(PTX) || defined(TLI_SEQUENT)
 -extern void fromhost();			/* get/validate client host info */
 +extern void fromhost __P((struct request_info *));	/* get/validate client host info */
  #else
  #define fromhost sock_host		/* no TLI support needed */
  #endif
  
 -extern int hosts_access();		/* access control */
 -extern void shell_cmd();		/* execute shell command */
 -extern char *percent_x();		/* do %<char> expansion */
 -extern void rfc931();			/* client name from RFC 931 daemon */
 -extern void clean_exit();		/* clean up and exit */
 -extern void refuse();			/* clean up and exit */
 -extern char *xgets();			/* fgets() on steroids */
 -extern char *split_at();		/* strchr() and split */
 -extern unsigned long dot_quad_addr();	/* restricted inet_addr() */
 +extern void shell_cmd __P((char *));	/* execute shell command */
 +extern char *percent_x __P((char *, int, char *, struct request_info *)); /* do %<char> expansion */
 +#ifdef INET6
 +extern void rfc931 __P((struct sockaddr *, struct sockaddr *, char *)); /* client name from RFC 931 daemon */
 +#else
 +extern void rfc931 __P((struct sockaddr_in *, struct sockaddr_in *, char *)); /* client name from RFC 931 daemon */
 +#endif
 +extern void clean_exit __P((struct request_info *)); /* clean up and exit */
 +extern void refuse __P((struct request_info *));	/* clean up and exit */
 +extern char *xgets __P((char *, int, FILE *));	/* fgets() on steroids */
 +extern char *split_at __P((char *, int));	/* strchr() and split */
 +extern unsigned long dot_quad_addr __P((char *)); /* restricted inet_addr() */
  
  /* Global variables. */
  
 @@ -98,9 +120,14 @@
    */
  
  #ifdef __STDC__
 +extern int hosts_access(struct request_info *request);
 +extern int hosts_ctl(char *daemon, char *client_name, char *client_addr, 
 +                     char *client_user);
  extern struct request_info *request_init(struct request_info *,...);
  extern struct request_info *request_set(struct request_info *,...);
  #else
 +extern int hosts_access();
 +extern int hosts_ctl();
  extern struct request_info *request_init();	/* initialize request */
  extern struct request_info *request_set();	/* update request structure */
  #endif
 @@ -123,27 +150,27 @@
    * host_info structures serve as caches for the lookup results.
    */
  
 -extern char *eval_user();		/* client user */
 -extern char *eval_hostname();		/* printable hostname */
 -extern char *eval_hostaddr();		/* printable host address */
 -extern char *eval_hostinfo();		/* host name or address */
 -extern char *eval_client();		/* whatever is available */
 -extern char *eval_server();		/* whatever is available */
 +extern char *eval_user __P((struct request_info *));	/* client user */
 +extern char *eval_hostname __P((struct host_info *));	/* printable hostname */
 +extern char *eval_hostaddr __P((struct host_info *));	/* printable host address */
 +extern char *eval_hostinfo __P((struct host_info *));	/* host name or address */
 +extern char *eval_client __P((struct request_info *));	/* whatever is available */
 +extern char *eval_server __P((struct request_info *));	/* whatever is available */
  #define eval_daemon(r)	((r)->daemon)	/* daemon process name */
  #define eval_pid(r)	((r)->pid)	/* process id */
  
  /* Socket-specific methods, including DNS hostname lookups. */
  
 -extern void sock_host();		/* look up endpoint addresses */
 -extern void sock_hostname();		/* translate address to hostname */
 -extern void sock_hostaddr();		/* address to printable address */
 +extern void sock_host __P((struct request_info *));
 +extern void sock_hostname __P((struct host_info *));
 +extern void sock_hostaddr __P((struct host_info *));
  #define sock_methods(r) \
  	{ (r)->hostname = sock_hostname; (r)->hostaddr = sock_hostaddr; }
  
  /* The System V Transport-Level Interface (TLI) interface. */
  
  #if defined(TLI) || defined(PTX) || defined(TLI_SEQUENT)
 -extern void tli_host();			/* look up endpoint addresses etc. */
 +extern void tli_host __P((struct request_info *));	/* look up endpoint addresses etc. */
  #endif
  
   /*
 @@ -184,7 +211,7 @@
    * behavior.
    */
  
 -extern void process_options();		/* execute options */
 +extern void process_options __P((char *, struct request_info *)); /* execute options */
  extern int dry_run;			/* verification flag */
  
  /* Bug workarounds. */
 @@ -223,3 +250,7 @@
  #define strtok	my_strtok
  extern char *my_strtok();
  #endif
 +
 +__END_DECLS
 +
 +#endif /* tcpd.h */
 
 --------------060302090907040601090509
 Content-Type: text/x-chdr;
  name="my_tcpd.h"
 Content-Transfer-Encoding: 7bit
 Content-Disposition: attachment;
  filename="my_tcpd.h"
 
  /*
   * @(#) tcpd.h 1.5 96/03/19 16:22:24
   * 
   * Author: Wietse Venema, Eindhoven University of Technology, The Netherlands.
   *
   * $FreeBSD: src/contrib/tcp_wrappers/tcpd.h,v 1.2 2000/02/03 10:26:59 shin Exp $
   * $DragonFly: src/contrib/tcp_wrappers/tcpd.h,v 1.5 2005/09/24 02:34:11 sephe Exp $
   */
 
 #ifndef _LIBWRAP_TCPD_H
 #define _LIBWRAP_TCPD_H
 
 #include <sys/cdefs.h>
 #include <stdio.h>
 
 /* Structure to describe one communications endpoint. */
 
 #define STRING_LENGTH	128		/* hosts, users, processes */
 
 struct host_info {
     char    name[STRING_LENGTH];	/* access via eval_hostname(host) */
     char    addr[STRING_LENGTH];	/* access via eval_hostaddr(host) */
 #ifdef INET6
     struct sockaddr *sin;		/* socket address or 0 */
 #else
     struct sockaddr_in *sin;		/* socket address or 0 */
 #endif
     struct t_unitdata *unit;		/* TLI transport address or 0 */
     struct request_info *request;	/* for shared information */
 };
 
 /* Structure to describe what we know about a service request. */
 
 struct request_info {
     int     fd;				/* socket handle */
     char    user[STRING_LENGTH];	/* access via eval_user(request) */
     char    daemon[STRING_LENGTH];	/* access via eval_daemon(request) */
     char    pid[10];			/* access via eval_pid(request) */
     struct host_info client[1];		/* client endpoint info */
     struct host_info server[1];		/* server endpoint info */
     void  (*sink) (int);		/* datagram sink function or 0 */
     void  (*hostname)			/* address to printable hostname */
 	  (struct host_info *);
     void  (*hostaddr)			/* address to printable address */
 	  (struct host_info *);
     void  (*cleanup) (void);		/* cleanup function or 0 */
     struct netconfig *config;		/* netdir handle */
 };
 
 /* Common string operations. Less clutter should be more readable. */
 
 #define STRN_CPY(d,s,l)	{ strncpy((d),(s),(l)); (d)[(l)-1] = 0; }
 
 #define STRN_EQ(x,y,l)	(strncasecmp((x),(y),(l)) == 0)
 #define STRN_NE(x,y,l)	(strncasecmp((x),(y),(l)) != 0)
 #define STR_EQ(x,y)	(strcasecmp((x),(y)) == 0)
 #define STR_NE(x,y)	(strcasecmp((x),(y)) != 0)
 
  /*
   * Initially, all above strings have the empty value. Information that
   * cannot be determined at runtime is set to "unknown", so that we can
   * distinguish between `unavailable' and `not yet looked up'. A hostname
   * that we do not believe in is set to "paranoid".
   */
 
 #define STRING_UNKNOWN	"unknown"	/* lookup failed */
 #define STRING_PARANOID	"paranoid"	/* hostname conflict */
 
 __BEGIN_DECLS
 extern char unknown[];
 extern char paranoid[];
 __END_DECLS
 
 #define HOSTNAME_KNOWN(s) (STR_NE((s),unknown) && STR_NE((s),paranoid))
 
 #define NOT_INADDR(s) (s[strspn(s,"01234567890./")] != 0)
 
 /* Global functions. */
 
 __BEGIN_DECLS
 #define fromhost sock_host
 
 int		hosts_access(struct request_info *);/* access control */
 int		hosts_ctl(char *, char *, char *, char *);/* limited interface to the hosts_access() routine */
 void		shell_cmd(char *);		/* execute shell command */
 char		*percent_x(char *, int, char *, struct request_info *);/* do %<char> expansion */
 void		rfc931(struct sockaddr *, struct sockaddr *, char *);/* client name from RFC 931 daemon */
 void		clean_exit(struct request_info *);/* clean up and exit */
 void		refuse(struct request_info *);	/* clean up and exit */
 char		*xgets(char *, int, FILE *);	/* fgets() on steroids */
 char		*split_at(char *, int);		/* strchr() and split */
 unsigned long	dot_quad_addr(char *);		/* restricted inet_addr() */
 
 /* Global variables. */
 
 extern int allow_severity;		/* for connection logging */
 extern int deny_severity;		/* for connection logging */
 extern char *hosts_allow_table;		/* for verification mode redirection */
 extern char *hosts_deny_table;		/* for verification mode redirection */
 extern int hosts_access_verbose;	/* for verbose matching mode */
 extern int rfc931_timeout;		/* user lookup timeout */
 extern int resident;			/* > 0 if resident process */
 
  /*
   * Routines for controlled initialization and update of request structure
   * attributes. Each attribute has its own key.
   */
 
 struct request_info	*request_init(struct request_info *,...);/* initialize request */
 struct request_info	*request_set(struct request_info *,...);/* update request structure */
 
 #define RQ_FILE		1		/* file descriptor */
 #define RQ_DAEMON	2		/* server process (argv[0]) */
 #define RQ_USER		3		/* client user name */
 #define RQ_CLIENT_NAME	4		/* client host name */
 #define RQ_CLIENT_ADDR	5		/* client host address */
 #define RQ_CLIENT_SIN	6		/* client endpoint (internal) */
 #define RQ_SERVER_NAME	7		/* server host name */
 #define RQ_SERVER_ADDR	8		/* server host address */
 #define RQ_SERVER_SIN	9		/* server endpoint (internal) */
 
  /*
   * Routines for delayed evaluation of request attributes. Each attribute
   * type has its own access method. The trivial ones are implemented by
   * macros. The other ones are wrappers around the transport-specific host
   * name, address, and client user lookup methods. The request_info and
   * host_info structures serve as caches for the lookup results.
   */
 
 char	*eval_user(struct request_info *);	/* client user */
 char	*eval_hostname(struct host_info *);	/* printable hostname */
 char	*eval_hostaddr(struct host_info *);	/* printable host address */
 char	*eval_hostinfo(struct host_info *);	/* host name or address */
 char	*eval_client(struct request_info *);	/* whatever is available */
 char	*eval_server(struct request_info *);	/* whatever is available */
 #define eval_daemon(r)	((r)->daemon)	/* daemon process name */
 #define eval_pid(r)	((r)->pid)	/* process id */
 
 /* Socket-specific methods, including DNS hostname lookups. */
 
 void	sock_host(struct request_info *);	/* look up endpoint addresses */
 void	sock_hostname(struct host_info *);	/* translate address to hostname */
 void	sock_hostaddr(struct host_info *);	/* address to printable address */
 #define sock_methods(r) \
 	{ (r)->hostname = sock_hostname; (r)->hostaddr = sock_hostaddr; }
 
  /*
   * Problem reporting interface. Additional file/line context is reported
   * when available. The jump buffer (tcpd_buf) is not declared here, or
   * everyone would have to include <setjmp.h>.
   */
 
 void	tcpd_warn(const char *, ...) __printflike(1, 2);/* report problem and proceed */
 void	tcpd_jump(const char *, ...) __printflike(1, 2);/* report problem and jump */
 __END_DECLS
 
 struct tcpd_context {
     char   *file;			/* current file */
     int     line;			/* current line */
 };
 __BEGIN_DECLS
 extern struct tcpd_context tcpd_context;
 __END_DECLS
 
  /*
   * While processing access control rules, error conditions are handled by
   * jumping back into the hosts_access() routine. This is cleaner than
   * checking the return value of each and every silly little function. The
   * (-1) returns are here because zero is already taken by longjmp().
   */
 
 #define AC_PERMIT	1		/* permit access */
 #define AC_DENY		(-1)		/* deny_access */
 #define AC_ERROR	AC_DENY		/* XXX */
 
 __BEGIN_DECLS
  /*
   * In verification mode an option function should just say what it would do,
   * instead of really doing it. An option function that would not return
   * should clear the dry_run flag to inform the caller of this unusual
   * behavior.
   */
 
 void	process_options(char *, struct request_info *);	/* execute options */
 void	fix_options(struct request_info *);		/* get rid of IP-level socket options */
 
 extern int dry_run;			/* verification flag */
 __END_DECLS
 
 #endif	/* !_LIBWRAP_TCPD_H */
 
 --------------060302090907040601090509--
State-Changed-From-To: open->closed 
State-Changed-By: ale 
State-Changed-When: Mon Aug 12 13:08:16 UTC 2013 
State-Changed-Why:  
Probably you are not aware that we are patching FreeBSD's (and not MySQL) tcpd.h. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=179806 
>Unformatted:
