Michael McConville wrote:
> We last updated net/loudmouth in 2008. Upstream is gone, and the
> following depend on it:
> 
>  o net/mcabber
>  o net/irssi-xmpp
>  o net/freetalk
>  o lang/io (strangly)
> 
> I know that at least two of those are pretty common chat clients.
> Because loudmouth is a network-exposed XMPP library, this is probably a
> dangerous situation. The best solution is likely to switch to a
> (somewhat) maintained fork from the mcabber people:
> 
> https://github.com/mcabber/loudmouth
> 
> Below is an initial patch for that. I haven't tested whether it works
> with its dependencies yet - I thought I'd get a sanity check first.
> 
> A few things to note:
> 
>  o I have to remove "include $(top_srcdir)/gtk-doc.make" from one of the
>    Makefile.am's or the build fails
> 
>  o Their means of checking for strndup(3) support didn't work, so I just
>    removed their redefinition
> 
>  o I don't entirely know what I'm doing with the autononsense, so there
>    may be an easier way of dealing with it

If someone who actually uses loudmouth or something it depends on wants
to adopt this patch, it'd be greatly appreciated.

If so, be sure to consider sthen and landry's comments.

Thanks,
Mike

> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/net/loudmouth/Makefile,v
> retrieving revision 1.25
> diff -u -p -r1.25 Makefile
> --- Makefile  21 Apr 2015 18:24:23 -0000      1.25
> +++ Makefile  3 Mar 2016 00:09:35 -0000
> @@ -2,13 +2,16 @@
>  
>  COMMENT=             lightweight Jabber client library
>  
> -V=                   1.4.3
> -DISTNAME=            loudmouth-$V
> -REVISION=            6
> +VERSION =            1.5.0
> +DISTNAME =           loudmouth-${VERSION}
> +
>  SHARED_LIBS +=       loudmouth-1          3.0      # .1.0
>  CATEGORIES=          net devel
>  
> -HOMEPAGE=            http://groups.google.com/group/loudmouth-dev/
> +GH_ACCOUNT =         mcabber
> +GH_PROJECT =         loudmouth
> +
> +DISTFILES =          ${VERSION}${EXTRACT_SUFX}
>  
>  # LGPLv2.1
>  PERMIT_PACKAGE_CDROM=        Yes
> @@ -17,18 +20,33 @@ WANTLIB += crypto glib-2.0 idn>=16 pcre 
>  
>  MODULES=             devel/gettext
>  
> -MASTER_SITES=        
> ${MASTER_SITE_GNOME:=sources/loudmouth/${V:C/^([0-9]+\.[0-9]+).*/\1/}/}
> -EXTRACT_SUFX=        .tar.bz2
> -
>  LIB_DEPENDS=         devel/glib2 \
>                       devel/libidn
> -BUILD_DEPENDS=               ${TEST_DEPENDS}
> -TEST_DEPENDS=        devel/check
>  
> -CONFIGURE_STYLE=     gnu
> +BUILD_DEPENDS =              ${TEST_DEPENDS} \
> +                     ${MODGNU_AUTOCONF_DEPENDS} \
> +                     ${MODGNU_AUTOMAKE_DEPENDS} \
> +                     devel/libtool
> +
> +TEST_DEPENDS =               devel/check
> +
> +CONFIGURE_STYLE =    autoconf automake gnu
> +AUTOCONF_VERSION =   2.69
> +AUTOMAKE_VERSION =   1.15
> +# with-compile-warnings=yes prevents it from using -Werror
>  CONFIGURE_ARGS+=     ${CONFIGURE_SHARED} \
>                       --disable-mono \
>                       --with-check=${LOCALBASE} \
> +                     --with-compile-warnings=yes \
>                       --with-ssl=openssl
> +
> +AUTO_ENV =           AUTOMAKE_VERSION=${AUTOMAKE_VERSION} \
> +                     AUTOCONF_VERSION=${AUTOCONF_VERSION}
> +
> +post-patch:
> +     cd ${WRKSRC}; ${AUTO_ENV} aclocal
> +
> +pre-configure:
> +     cd ${WRKSRC}; libtoolize && ${AUTO_ENV} automake --add-missing --foreign
>  
>  .include <bsd.port.mk>
> Index: distinfo
> ===================================================================
> RCS file: /cvs/ports/net/loudmouth/distinfo,v
> retrieving revision 1.6
> diff -u -p -r1.6 distinfo
> --- distinfo  18 Jan 2015 03:14:42 -0000      1.6
> +++ distinfo  3 Mar 2016 00:09:35 -0000
> @@ -1,2 +1,2 @@
> -SHA256 (loudmouth-1.4.3.tar.bz2) = 
> lak/XQCbceqBk9mUqhHzEbwzCj7+G3zXTcSPEcf5KeM=
> -SIZE (loudmouth-1.4.3.tar.bz2) = 366818
> +SHA256 (1.5.0.tar.gz) = UUAxemOEUMl3pynexUW1lTjqSy5Rndcj07/aEsonhmU=
> +SIZE (1.5.0.tar.gz) = 124001
> Index: patches/patch-configure
> ===================================================================
> RCS file: patches/patch-configure
> diff -N patches/patch-configure
> --- patches/patch-configure   18 Nov 2008 11:41:23 -0000      1.3
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,19 +0,0 @@
> -$OpenBSD: patch-configure,v 1.3 2008/11/18 11:41:23 jasper Exp $
> ---- configure.orig   Wed Oct 29 21:25:57 2008
> -+++ configure        Tue Nov 18 12:33:20 2008
> -@@ -21423,6 +21423,7 @@ cat >>conftest.$ac_ext <<_ACEOF
> - 
> - #include <stdio.h>
> - #include <stdlib.h>
> -+#include <string.h>
> - 
> - #include <check.h>
> - 
> -@@ -21532,6 +21533,7 @@ cat >>conftest.$ac_ext <<_ACEOF
> - 
> - #include <stdio.h>
> - #include <stdlib.h>
> -+#include <string.h>
> - 
> - #include <check.h>
> - 
> Index: patches/patch-docs_reference_Makefile_am
> ===================================================================
> RCS file: patches/patch-docs_reference_Makefile_am
> diff -N patches/patch-docs_reference_Makefile_am
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-docs_reference_Makefile_am  3 Mar 2016 00:09:35 -0000
> @@ -0,0 +1,13 @@
> +$OpenBSD$
> +--- docs/reference/Makefile.am.orig  Wed Mar  2 14:22:02 2016
> ++++ docs/reference/Makefile.am       Wed Mar  2 14:22:25 2016
> +@@ -80,9 +80,6 @@ GTKDOC_LIBS=                                               
> \
> +     $(top_builddir)/loudmouth/libloudmouth.la
> + 
> + 
> +-# This includes the standard gtk-doc make rules, copied by gtkdocize.
> +-include $(top_srcdir)/gtk-doc.make
> +-
> + # Other files to distribute
> + # e.g. EXTRA_DIST += version.xml.in
> + EXTRA_DIST += 
> Index: patches/patch-loudmouth_Makefile_in
> ===================================================================
> RCS file: patches/patch-loudmouth_Makefile_in
> diff -N patches/patch-loudmouth_Makefile_in
> --- patches/patch-loudmouth_Makefile_in       20 Aug 2008 16:11:11 -0000      
> 1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,13 +0,0 @@
> -$OpenBSD: patch-loudmouth_Makefile_in,v 1.1 2008/08/20 16:11:11 jasper Exp $
> ---- loudmouth/Makefile.in.orig       Mon Aug  4 13:37:02 2008
> -+++ loudmouth/Makefile.in    Mon Aug  4 13:37:12 2008
> -@@ -306,8 +306,7 @@ libloudmouthinclude_HEADERS = \
> - 
> - libloudmouth_1_la_LIBADD = \
> -     $(LOUDMOUTH_LIBS)               \
> --    $(LIBIDN_LIBS) \
> --    -lresolv
> -+    $(LIBIDN_LIBS)
> - 
> - libloudmouth_1_la_LDFLAGS = \
> -     -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
> Index: patches/patch-loudmouth_asyncns_c
> ===================================================================
> RCS file: patches/patch-loudmouth_asyncns_c
> diff -N patches/patch-loudmouth_asyncns_c
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-loudmouth_asyncns_c 3 Mar 2016 00:09:35 -0000
> @@ -0,0 +1,39 @@
> +$OpenBSD$
> +--- loudmouth/asyncns.c.orig Mon Mar  9 19:05:59 2009
> ++++ loudmouth/asyncns.c      Wed Mar  2 14:31:49 2016
> +@@ -24,6 +24,7 @@
> + 
> + /* #undef HAVE_PTHREAD */
> + 
> ++#include <sys/resource.h>
> + #include <assert.h>
> + #include <fcntl.h>
> + #include <signal.h>
> +@@ -176,27 +177,6 @@ typedef struct res_query_response {
> +     int _errno;
> +     int _h_errno;
> + } res_response_t;
> +-
> +-#ifndef HAVE_STRNDUP
> +-
> +-static char *strndup(const char *s, size_t l) {
> +-    size_t a;
> +-    char *n;
> +-
> +-    a = strlen(s);
> +-    if (a > l)
> +-        a = l;
> +-
> +-    if (!(n = malloc(a+1)))
> +-        return NULL;
> +-
> +-    memcpy(n, s, a);
> +-    n[a] = 0;
> +-
> +-    return n;
> +-}
> +-
> +-#endif
> + 
> + #ifndef HAVE_PTHREAD
> + 
> Index: patches/patch-loudmouth_lm-error_c
> ===================================================================
> RCS file: /cvs/ports/net/loudmouth/patches/patch-loudmouth_lm-error_c,v
> retrieving revision 1.1
> diff -u -p -r1.1 patch-loudmouth_lm-error_c
> --- patches/patch-loudmouth_lm-error_c        23 Mar 2012 13:28:25 -0000      
> 1.1
> +++ patches/patch-loudmouth_lm-error_c        3 Mar 2016 00:09:35 -0000
> @@ -2,9 +2,9 @@ $OpenBSD: patch-loudmouth_lm-error_c,v 1
>  
>  error: #error "Only <glib.h> can be included directly."
>  
> ---- loudmouth/lm-error.c.orig        Sun Mar 18 07:26:55 2012
> -+++ loudmouth/lm-error.c     Sun Mar 18 07:27:04 2012
> -@@ -19,7 +19,7 @@
> +--- loudmouth/lm-error.c.orig        Mon Mar  9 19:05:59 2009
> ++++ loudmouth/lm-error.c     Wed Mar  2 14:21:01 2016
> +@@ -25,7 +25,7 @@
>    */
>   
>   #include <config.h>
> @@ -12,4 +12,4 @@ error: #error "Only <glib.h> can be incl
>  +#include <glib.h>
>   #include "lm-error.h"
>   
> - /**
> + GQuark
> Index: patches/patch-loudmouth_lm-resolver_c
> ===================================================================
> RCS file: patches/patch-loudmouth_lm-resolver_c
> diff -N patches/patch-loudmouth_lm-resolver_c
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-loudmouth_lm-resolver_c     3 Mar 2016 00:09:35 -0000
> @@ -0,0 +1,11 @@
> +$OpenBSD$
> +--- loudmouth/lm-resolver.c.orig     Wed Mar  2 14:37:08 2016
> ++++ loudmouth/lm-resolver.c  Wed Mar  2 14:37:26 2016
> +@@ -27,6 +27,7 @@
> + #include <arpa/nameser_compat.h>
> + #endif
> + 
> ++#include <netinet/in.h>
> + #include <arpa/nameser.h>
> + #include <resolv.h>
> + 
> Index: patches/patch-loudmouth_lm-ssl-openssl_c
> ===================================================================
> RCS file: patches/patch-loudmouth_lm-ssl-openssl_c
> diff -N patches/patch-loudmouth_lm-ssl-openssl_c
> --- patches/patch-loudmouth_lm-ssl-openssl_c  19 Jan 2009 10:54:27 -0000      
> 1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,18 +0,0 @@
> -$OpenBSD: patch-loudmouth_lm-ssl-openssl_c,v 1.1 2009/01/19 10:54:27 jasper 
> Exp $
> ---- loudmouth/lm-ssl-openssl.c.orig  Mon Jan 19 11:50:51 2009
> -+++ loudmouth/lm-ssl-openssl.c       Mon Jan 19 11:51:45 2009
> -@@ -305,6 +305,14 @@ _lm_ssl_initialize (LmSSL *ssl) 
> -             g_warning ("SSL_CTX_new() == NULL");
> -             abort();
> -     }
> -+    /* Set the NO_TICKET option on the context to allow for talk to Google 
> Talk 
> -+     * which apparently seems to be having a problem handling empty session 
> -+     * tickets due to a bug in Java.
> -+     *
> -+     * See http://twistedmatrix.com/trac/ticket/3463 and
> -+     * Loudmouth [#28].
> -+     */
> -+    SSL_CTX_set_options (ssl->ssl_ctx, SSL_OP_NO_TICKET);
> -     /*if (access("/etc/ssl/cert.pem", R_OK) == 0)
> -             cert_file = "/etc/ssl/cert.pem";
> -     if (!SSL_CTX_load_verify_locations(ssl->ssl_ctx,
> Index: patches/patch-tests-Makefile_in
> ===================================================================
> RCS file: patches/patch-tests-Makefile_in
> diff -N patches/patch-tests-Makefile_in
> --- patches/patch-tests-Makefile_in   20 Aug 2008 16:11:11 -0000      1.2
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,21 +0,0 @@
> -$OpenBSD: patch-tests-Makefile_in,v 1.2 2008/08/20 16:11:11 jasper Exp $
> ---- tests/Makefile.in.orig   Mon Aug  4 13:23:35 2008
> -+++ tests/Makefile.in        Mon Aug  4 13:24:03 2008
> -@@ -52,7 +52,7 @@ test_objects_LDADD = $(LDADD)
> - am_test_parser_OBJECTS = test-parser.$(OBJEXT)
> - test_parser_OBJECTS = $(am_test_parser_OBJECTS)
> - test_parser_LDADD = $(LDADD)
> --DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
> -+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -I${TRUEPREFIX}/include
> - depcomp = $(SHELL) $(top_srcdir)/depcomp
> - am__depfiles_maybe = depfiles
> - COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
> -@@ -127,7 +127,7 @@ INSTALL_DATA = @INSTALL_DATA@
> - INSTALL_PROGRAM = @INSTALL_PROGRAM@
> - INSTALL_SCRIPT = @INSTALL_SCRIPT@
> - INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
> --LDFLAGS = @LDFLAGS@
> -+LDFLAGS = @LDFLAGS@ -lcheck
> - LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@
> - LIBGNUTLS_CONFIG = @LIBGNUTLS_CONFIG@
> - LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@
> 

Reply via email to