Hello community,

here is the log from the commit of package 6tunnel for openSUSE:Leap:15.2 
checked in at 2020-01-30 06:07:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2/6tunnel (Old)
 and      /work/SRC/openSUSE:Leap:15.2/.6tunnel.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "6tunnel"

Thu Jan 30 06:07:29 2020 rev:4 rq:763577 version:0.13

Changes:
--------
--- /work/SRC/openSUSE:Leap:15.2/6tunnel/6tunnel.changes        2020-01-15 
14:44:12.609153392 +0100
+++ /work/SRC/openSUSE:Leap:15.2/.6tunnel.new.26092/6tunnel.changes     
2020-01-30 06:07:30.314434363 +0100
@@ -1,0 +2,9 @@
+Mon Oct 21 20:07:55 UTC 2019 - Martin Hauke <mar...@gmx.de>
+
+- Update to version 0.13
+  * Updated help message.
+  * Avoid segfault in "-f" mode.
+  * Support automake's "make check" target.
+- Run testsuite
+
+-------------------------------------------------------------------

Old:
----
  6tunnel-0.12.tar.gz

New:
----
  6tunnel-0.13.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ 6tunnel.spec ++++++
--- /var/tmp/diff_new_pack.ckuvwQ/_old  2020-01-30 06:07:30.614434531 +0100
+++ /var/tmp/diff_new_pack.ckuvwQ/_new  2020-01-30 06:07:30.618434533 +0100
@@ -1,6 +1,7 @@
 #
 # spec file for package 6tunnel
 #
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
 # Copyright (c) 2018, Martin Hauke <mar...@gmx.de>
 #
 # All modifications and additions to the file contributed by third parties
@@ -12,12 +13,12 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
 Name:           6tunnel
-Version:        0.12
+Version:        0.13
 Release:        0
 Summary:        TCP proxy for non-IPv6 applications
 License:        GPL-2.0-or-later
@@ -27,6 +28,7 @@
 Source:         
https://github.com/wojtekka/%{name}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
 BuildRequires:  autoconf
 BuildRequires:  automake
+BuildRequires:  python2
 
 %description
 6tunnel allows using services provided by IPv6 hosts with IPv4-only
@@ -37,6 +39,7 @@
 
 %prep
 %setup -q
+sed -i 's|#!/usr/bin/env python|#!/usr/bin/python2|' test.py
 
 %build
 autoreconf -fi
@@ -46,6 +49,9 @@
 %install
 %make_install
 
+%check
+make %{?_smp_mflags} check
+
 %files
 %license COPYING
 %doc ChangeLog README.md

++++++ 6tunnel-0.12.tar.gz -> 6tunnel-0.13.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/6tunnel-0.12/.gitignore new/6tunnel-0.13/.gitignore
--- old/6tunnel-0.12/.gitignore 2016-10-24 22:42:34.000000000 +0200
+++ new/6tunnel-0.13/.gitignore 2019-10-19 21:59:47.000000000 +0200
@@ -12,4 +12,5 @@
 configure
 depcomp
 missing
+test-driver
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/6tunnel-0.12/6tunnel.1 new/6tunnel-0.13/6tunnel.1
--- old/6tunnel-0.12/6tunnel.1  2016-10-24 22:42:34.000000000 +0200
+++ new/6tunnel-0.13/6tunnel.1  2019-10-19 21:59:47.000000000 +0200
@@ -1,8 +1,8 @@
 .\"
-.\"  6tunnel v0.12
-.\"  (C) Copyright 2000-2005,2013,2016 by Wojtek Kaniewski 
<wojte...@toxygen.net>
+.\"  6tunnel v0.13
+.\"  (C) Copyright 2000-2005,2013,2016,2019 by Wojtek Kaniewski 
<wojte...@toxygen.net>
 .\"
-.TH 6TUNNEL 1 "Oct 22, 2016"
+.TH 6TUNNEL 1 "Oct 19, 2019"
 .SH NAME
 6tunnel \- tunnelling for application that don't speak IPv6
 .SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/6tunnel-0.12/6tunnel.c new/6tunnel-0.13/6tunnel.c
--- old/6tunnel-0.12/6tunnel.c  2016-10-24 22:42:34.000000000 +0200
+++ new/6tunnel-0.13/6tunnel.c  2019-10-19 21:59:47.000000000 +0200
@@ -1,21 +1,21 @@
 /*
- *  6tunnel v0.12
- *  (C) Copyright 2000-2005,2013,2016 by Wojtek Kaniewski 
<wojte...@toxygen.net>
- *  
+ *  6tunnel v0.13
+ *  (C) Copyright 2000-2005,2013,2016,2019 by Wojtek Kaniewski 
<wojte...@toxygen.net>
+ *
  *  Contributions by:
  *  - Dariusz Jackowski <asc...@linux.pl>
  *  - Ramunas Lukosevicius <lukor...@parok.lt>
  *  - Roland Stigge <sti...@antcom.de>
- *  
+ *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License Version 2 as
  *  published by the Free Software Foundation.
- *  
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
- *  
+ *
  *  You should have received a copy of the GNU General Public License
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
@@ -120,7 +120,7 @@
                }
        }
        else if (sa->sa_family == AF_INET6)
-       {               
+       {
                struct sockaddr_in6 *sin6 = (struct sockaddr_in6*) sa;
                tmp = xmalloc(INET6_ADDRSTRLEN);
 
@@ -130,7 +130,7 @@
                        tmp = NULL;
                }
        }
-       
+
        return tmp;
 }
 
@@ -161,7 +161,7 @@
 void print_hexdump(const char *buf, int len)
 {
        int i, j;
-  
+
        for (i = 0; i < ((len / 16) + ((len % 16) ? 1 : 0)); i++) {
                printf("%.4x: ", i * 16);
 
@@ -173,9 +173,9 @@
                        if (j == 7)
                                printf(" ");
                }
-               
+
                printf(" ");
-               
+
                for (j = 0; j < 16; j++) {
                        if (i * 16 + j < len) {
                                char ch = buf[i * 16 + j];
@@ -239,7 +239,7 @@
                }
 
                buf[i] = 0;
-               
+
                if (i > 0 && buf[i - 1] == '\r')
                        buf[i - 1] = 0;
 
@@ -252,7 +252,7 @@
                        if (write(rsock, tmp, strlen(tmp)) != strlen(tmp)) {
                                // Do nothing. We're failing anyway.
                        }
-                               
+
                        goto cleanup;
                }
 
@@ -264,10 +264,10 @@
                        if (write(rsock, tmp, strlen(tmp)) != strlen(tmp)) {
                                // Do nothing. We're failing anyway.
                        }
-                       
+
                        goto cleanup;
                }
-               
+
                debug("<%d> irc proxy auth succeeded\n", rsock);
        }
 
@@ -288,7 +288,7 @@
 
        for (ai_ptr = connect_ai; ai_ptr != NULL; ai_ptr = ai_ptr->ai_next) {
                sock = socket(ai_ptr->ai_family, ai_ptr->ai_socktype, 0);
-       
+
                if (sock == -1) {
                        if (ai_ptr->ai_next != NULL)
                                continue;
@@ -299,7 +299,7 @@
                if (source != NULL)
                {
                        bind_ai = resolve_host(source, 0, source_hint);
-       
+
                        if (bind_ai == NULL) {
                                debug("<%d> unable to resolve source host 
(%s)\n", rsock, (source != NULL) ? source : "default");
                                goto cleanup;
@@ -326,7 +326,7 @@
                        debug("<%d> connection failed (%s,%d)\n", rsock, 
remote_host, remote_port);
                        goto cleanup;
                }
-               
+
                close(sock);
                sock = -1;
        }
@@ -355,7 +355,7 @@
                        FD_SET(rsock, &wds);
                if (inbuf && inlen)
                        FD_SET(sock, &wds);
-    
+
                ret = select((sock > rsock) ? (sock + 1) : (rsock + 1), &rds, 
&wds, NULL, NULL);
 
                if (FD_ISSET(rsock, &wds)) {
@@ -398,12 +398,12 @@
                                printf("<%d> recvfrom %s,%d\n", rsock, 
remote_host, remote_port);
                                print_hexdump(buf, ret);
                        }
-                       
+
                        sent = write(rsock, buf, ret);
 
                        if (sent < 1)
                                goto cleanup;
-                       
+
                        if (sent < ret) {
                                outbuf = xrealloc(outbuf, outlen + ret - sent);
                                memcpy(outbuf + outlen, buf + sent, ret - sent);
@@ -449,17 +449,18 @@
 void usage(const char *arg0)
 {
        fprintf(stderr,
-                       
+
 "usage: %s [-146dvh] [-s sourcehost] [-l localhost] [-i pass]\n"
 "           [-I pass] [-L limit] [-A filename] [-p pidfile]\n"
 "           [-m mapfile] localport remotehost [remoteport]\n"
-"\n"      
+"\n"
 "  -1  allow only single connection and quit\n"
 "  -4  connect to IPv4 endpoints (default: connect to IPv6)\n"
 "  -6  bind to IPv6 address (default: bind to IPv4)\n"
 "  -d  don't detach\n"
 "  -f  force tunneling (even if remotehost isn't resolvable)\n"
 "  -h  print hex dump of packets\n"
+"  -u  change UID and GID after bind()\n"
 "  -i  act like irc proxy and ask for password\n"
 "  -I  send specified password to the irc server\n"
 "  -l  bind to specified address\n"
@@ -474,7 +475,7 @@
 void clear_argv(char *argv)
 {
        int x;
-  
+
        for (x = 0; x < strlen(argv); x++)
                argv[x] = 'x';
 
@@ -484,12 +485,12 @@
 void source_map_destroy(void)
 {
        source_map_t *m;
-       
+
        debug("source_map_destroy()\n");
-       
+
        for (m = source_map; m != NULL; ) {
                source_map_t *n;
-               
+
                free(m->ipv4);
                free(m->ipv6);
                n = m;
@@ -513,7 +514,7 @@
                debug("unable to read map file, ignoring\n");
                return;
        }
-       
+
        while (fgets(buf, sizeof(buf), f) != NULL) {
                char *p, *ipv4, *ipv6;
                source_map_t *m;
@@ -545,14 +546,14 @@
                *p = 0;
 
                debug("[%s] mapped to [%s]\n", ipv4, ipv6);
-               
+
                m = (source_map_t*) xmalloc(sizeof(source_map_t));
                m->ipv4 = xstrdup(ipv4);
                m->ipv6 = xstrdup(ipv6);
                m->next = source_map;
                source_map = m;
        }
-       
+
        fclose(f);
 }
 
@@ -596,7 +597,7 @@
        struct passwd *pw = NULL;
        char *tmp;
        int source_hint;
-       
+
        while ((optc = getopt(argc, argv, "1dv46fHs:l:I:i:hu:m:L:A:p:")) != -1) 
{
                switch (optc) {
                        case '1':
@@ -660,7 +661,7 @@
 
        if (verbose)
                detach = 0;
-       
+
        if (detach)
                verbose = 0;
 
@@ -677,17 +678,17 @@
                        exit(1);
                }
        }
-  
-       if (source_map_file != NULL) 
+
+       if (source_map_file != NULL)
                map_read();
-  
+
        local_port = atoi(argv[optind++]);
        remote_host = argv[optind++];
        remote_port = (argc == optind) ? local_port : atoi(argv[optind]);
 
        /* Check if destination and source hosts are resolvable. If it's 
expected to be
         * available later, -f can be used. */
- 
+
        debug("resolving %s\n", remote_host);
 
        ai = resolve_host(remote_host, remote_port, remote_hint[0]);
@@ -705,17 +706,20 @@
                source_hint = remote_hint[0];
        }
 
-       if (source_hint == AF_INET && local_hint == AF_INET)
-               fprintf(stderr, "%s: warning: both local and remote addresses 
are IPv4\n", argv[0]);
+       if (ai != NULL) {
 
-       if (source_hint == AF_INET6 && local_hint == AF_INET6)
-               fprintf(stderr, "%s: warning: both local and remote addresses 
are IPv6\n", argv[0]);
+               if (source_hint == AF_INET && local_hint == AF_INET)
+                       fprintf(stderr, "%s: warning: both local and remote 
addresses are IPv4\n", argv[0]);
 
-       tmp = xntop(ai->ai_addr);
-       debug("resolved to %s\n", tmp);
-       free(tmp);
+               if (source_hint == AF_INET6 && local_hint == AF_INET6)
+                       fprintf(stderr, "%s: warning: both local and remote 
addresses are IPv6\n", argv[0]);
 
-       freeaddrinfo(ai);
+               tmp = xntop(ai->ai_addr);
+               debug("resolved to %s\n", tmp);
+               free(tmp);
+
+               freeaddrinfo(ai);
+       }
 
        if (source_host != NULL) {
                debug("resolving %s\n", source_host);
@@ -751,7 +755,7 @@
        free(tmp);
 
        /* Now that we know that hosts are resolvable, dump some debugging 
information. */
- 
+
        debug("local: %s,%d; ", (local_host != NULL) ? local_host : "default", 
local_port);
        debug("remote: %s,%d; ", remote_host, remote_port);
 
@@ -773,14 +777,14 @@
                perror("setsockopt");
                exit(1);
        }
-  
+
        for (ai_ptr = ai; ai_ptr != NULL; ai_ptr = ai_ptr->ai_next) {
                if (bind(listen_fd, ai_ptr->ai_addr, ai_ptr->ai_addrlen) == -1 
&& ai_ptr->ai_next == NULL) {
                        perror("bind");
                        exit(1);
                }
-       }    
-  
+       }
+
        if (listen(listen_fd, 100) == -1) {
                perror("listen");
                exit(1);
@@ -795,12 +799,12 @@
                int i, ret;
 
                signal(SIGHUP, sighup);
-               
+
                for (i = 0; i < 3; i++)
                        close(i);
 
                ret = fork();
-               
+
                if (ret == -1) {
                        perror("fork");
                        exit(1);
@@ -837,8 +841,8 @@
        signal(SIGTERM, sigterm);
        signal(SIGINT, sigterm);
        signal(SIGHUP, sighup);
-    
-       for (;;) {  
+
+       for (;;) {
                int ret;
                fd_set rds;
                int client_fd;
@@ -859,7 +863,7 @@
                }
 
                client_fd = accept(listen_fd, &sa, &sa_len);
-               
+
                if (client_fd == -1) {
                        perror("accept");
                        break;
@@ -878,14 +882,14 @@
                        close(client_fd);
                        continue;
                }
-               
+
                if (conn_limit) {
                        conn_count++;
                        debug(" (no. %d)", conn_count);
                }
-               
+
                fflush(stdout);
-    
+
                if ((ret = fork()) == -1) {
                        debug(" -- fork() failed.\n");
                        shutdown(client_fd, 2);
@@ -893,7 +897,7 @@
                        free(client_addr);
                        continue;
                }
-    
+
                if (!ret) {
                        signal(SIGHUP, SIG_IGN);
                        close(listen_fd);
@@ -902,11 +906,11 @@
                        free(client_addr);
                        debug("<%d> connection closed\n", client_fd);
                        exit(0);
-               } 
+               }
 
                close(client_fd);
                free(client_addr);
-    
+
                if (single_connection) {
                        shutdown(listen_fd, 2);
                        close(listen_fd);
@@ -916,8 +920,6 @@
        }
 
        close(listen_fd);
-  
+
        exit(1);
 }
-
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/6tunnel-0.12/ChangeLog new/6tunnel-0.13/ChangeLog
--- old/6tunnel-0.12/ChangeLog  2016-10-24 22:42:34.000000000 +0200
+++ new/6tunnel-0.13/ChangeLog  2019-10-19 21:59:47.000000000 +0200
@@ -1,3 +1,14 @@
+0.13 (2019-10-19)
+
+Changes by Stuart Cardall:
+- Updated help message.
+
+Changes by Paul Warren:
+- Avoid segfault in "-f" mode.
+ 
+Changes by Wojtek Kaniewski:
+- Support automake's "make check" target.
+
 0.12 (2016-10-24)
 
 Changes by Wojtek Kaniewski <wojte...@toxygen.net>:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/6tunnel-0.12/Makefile.am new/6tunnel-0.13/Makefile.am
--- old/6tunnel-0.12/Makefile.am        2016-10-24 22:42:34.000000000 +0200
+++ new/6tunnel-0.13/Makefile.am        2019-10-19 21:59:47.000000000 +0200
@@ -5,3 +5,6 @@
 
 dist_man_MANS = 6tunnel.1
 
+TESTS = ./test.py
+
+EXTRA_DIST = test.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/6tunnel-0.12/README.md new/6tunnel-0.13/README.md
--- old/6tunnel-0.12/README.md  2016-10-24 22:42:34.000000000 +0200
+++ new/6tunnel-0.13/README.md  2019-10-19 21:59:47.000000000 +0200
@@ -1,4 +1,5 @@
-# 6tunnel
+6tunnel
+=======
 
 6tunnel allows you to use services provided by IPv6 hosts with
 IPv4-only applications and vice-versa. It can bind to any of your IPv4
@@ -39,3 +40,11 @@
 makes IPv4 address the preffered one. For IPv6-to-any tunnels use -6
 which makes 6tunnel bind to IPv6 address.
 
+License
+-------
+
+Since version 0.11 released under the terms of
+[GPL version 2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) --
+see [release notes](https://github.com/wojtekka/6tunnel/releases/tag/0.11)
+for details.
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/6tunnel-0.12/configure.ac 
new/6tunnel-0.13/configure.ac
--- old/6tunnel-0.12/configure.ac       2016-10-24 22:42:34.000000000 +0200
+++ new/6tunnel-0.13/configure.ac       2019-10-19 21:59:47.000000000 +0200
@@ -1,4 +1,4 @@
-AC_INIT([6tunnel],[0.12],[])
+AC_INIT([6tunnel],[0.13],[])
 AM_INIT_AUTOMAKE([1.14 foreign silent-rules subdir-objects tar-pax])
 AC_PROG_CC
 AC_PROG_INSTALL
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/6tunnel-0.12/contrib/runit.run 
new/6tunnel-0.13/contrib/runit.run
--- old/6tunnel-0.12/contrib/runit.run  1970-01-01 01:00:00.000000000 +0100
+++ new/6tunnel-0.13/contrib/runit.run  2019-10-19 21:59:47.000000000 +0200
@@ -0,0 +1,11 @@
+#!/bin/sh
+#
+# example run script for service supervision with runit
+# http://smarden.org/runit/
+#
+# redirect ipv4 port 80 to internal ipv6 port 80 & drop privileges
+#
+exec 2>&1
+exec 6tunnel -u nobody -d -p /run/80.pid 80 a:dead:beef:1 80
+
+


Reply via email to