Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package 6tunnel for openSUSE:Factory checked in at 2026-03-16 14:16:31 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/6tunnel (Old) and /work/SRC/openSUSE:Factory/.6tunnel.new.8177 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "6tunnel" Mon Mar 16 14:16:31 2026 rev:7 rq:1339093 version:0.14 Changes: -------- --- /work/SRC/openSUSE:Factory/6tunnel/6tunnel.changes 2025-07-10 22:11:39.670499130 +0200 +++ /work/SRC/openSUSE:Factory/.6tunnel.new.8177/6tunnel.changes 2026-03-16 14:19:23.614427481 +0100 @@ -1,0 +2,13 @@ +Sun Mar 15 09:38:24 UTC 2026 - Martin Hauke <[email protected]> + +- Update to version 0.14 + * Modify test script to use Python 3. + * Remove unused variables. + * Stop using sockaddr for generic storage. + * Add -V parameter to print version. + * Fix compilation with GCC 15. +- Drop not longer needed patches + * 6tunnel-gcc15.patch + * 9e4119f03f57eec67b97dddbf09d363b638791dc.patch + +------------------------------------------------------------------- Old: ---- 6tunnel-0.13.tar.gz 6tunnel-gcc15.patch 9e4119f03f57eec67b97dddbf09d363b638791dc.patch New: ---- 6tunnel-0.14.tar.gz ----------(Old B)---------- Old:- Drop not longer needed patches * 6tunnel-gcc15.patch * 9e4119f03f57eec67b97dddbf09d363b638791dc.patch Old: * 6tunnel-gcc15.patch * 9e4119f03f57eec67b97dddbf09d363b638791dc.patch ----------(Old E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ 6tunnel.spec ++++++ --- /var/tmp/diff_new_pack.tq45yA/_old 2026-03-16 14:19:24.174450728 +0100 +++ /var/tmp/diff_new_pack.tq45yA/_new 2026-03-16 14:19:24.174450728 +0100 @@ -1,8 +1,8 @@ # # spec file for package 6tunnel # -# Copyright (c) 2024 SUSE LLC -# Copyright (c) 2018, Martin Hauke <[email protected]> +# Copyright (c) 2026 SUSE LLC and contributors +# Copyright (c) 2018-2026, Martin Hauke <[email protected]> # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ Name: 6tunnel -Version: 0.13 +Version: 0.14 Release: 0 Summary: TCP proxy for non-IPv6 applications License: GPL-2.0-or-later @@ -26,9 +26,6 @@ URL: https://github.com/wojtekka/6tunnel #Git-Clone: https://github.com/wojtekka/6tunnel.git Source: https://github.com/wojtekka/%{name}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz -Patch1: https://github.com/wojtekka/6tunnel/commit/9e4119f03f57eec67b97dddbf09d363b638791dc.patch -# https://github.com/wojtekka/6tunnel/issues/19 -Patch2: 6tunnel-gcc15.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: python3 ++++++ 6tunnel-0.13.tar.gz -> 6tunnel-0.14.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/6tunnel-0.13/6tunnel.1 new/6tunnel-0.14/6tunnel.1 --- old/6tunnel-0.13/6tunnel.1 2019-10-19 21:59:47.000000000 +0200 +++ new/6tunnel-0.14/6tunnel.1 2025-09-03 20:15:40.000000000 +0200 @@ -1,14 +1,14 @@ .\" -.\" 6tunnel v0.13 -.\" (C) Copyright 2000-2005,2013,2016,2019 by Wojtek Kaniewski <[email protected]> +.\" 6tunnel +.\" (C) Copyright 2000-2025 by Wojtek Kaniewski <[email protected]> .\" -.TH 6TUNNEL 1 "Oct 19, 2019" +.TH 6TUNNEL 1 2025-07-10 .SH NAME 6tunnel \- tunnelling for application that don't speak IPv6 .SH SYNOPSIS .B 6tunnel [ -.B \-146dhfv +.B \-146dhfvV ] [ .BI \-u .IR username @@ -146,6 +146,9 @@ .TP .B \-v Be verbose and don't detach. +.TP +.B \-V +Print version and exit. .SH NOTES Option .B \-H diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/6tunnel-0.13/6tunnel.c new/6tunnel-0.14/6tunnel.c --- old/6tunnel-0.13/6tunnel.c 2019-10-19 21:59:47.000000000 +0200 +++ new/6tunnel-0.14/6tunnel.c 2025-09-03 20:15:40.000000000 +0200 @@ -1,6 +1,6 @@ /* - * 6tunnel v0.13 - * (C) Copyright 2000-2005,2013,2016,2019 by Wojtek Kaniewski <[email protected]> + * 6tunnel + * (C) Copyright 2000-2025 by Wojtek Kaniewski <[email protected]> * * Contributions by: * - Dariusz Jackowski <[email protected]> @@ -209,7 +209,6 @@ { char buf[4096], *outbuf = NULL, *inbuf = NULL; int sock = -1, outlen = 0, inlen = 0; - struct sockaddr *sa = NULL; const char *source; struct addrinfo *connect_ai = NULL; struct addrinfo *bind_ai = NULL; @@ -469,6 +468,7 @@ " -s connect using specified address\n" " -m read specified IPv4-to-IPv6 map file\n" " -v be verbose\n" +" -V print version\n" "\n", arg0); } @@ -557,7 +557,7 @@ fclose(f); } -void sighup() +void sighup(int unused) { source_map_destroy(); map_read(); @@ -565,7 +565,7 @@ signal(SIGHUP, sighup); } -void sigchld() +void sigchld(int unused) { while (waitpid(-1, NULL, WNOHANG) > 0) { debug("child process exited\n"); @@ -575,7 +575,7 @@ signal(SIGCHLD, sigchld); } -void sigterm() +void sigterm(int unused) { if (pid_file != NULL) unlink(pid_file); @@ -586,19 +586,16 @@ int main(int argc, char **argv) { int force = 0, listen_fd, single_connection = 0, jeden = 1, local_port; - int detach = 1, sa_len, conn_limit = 0, optc; + int detach = 1, conn_limit = 0, optc; const char *username = NULL; char *local_host = NULL; struct addrinfo *ai; struct addrinfo *ai_ptr; - struct sockaddr *sa; - struct sockaddr_in laddr; - struct sockaddr_in6 laddr6; struct passwd *pw = NULL; char *tmp; int source_hint; - while ((optc = getopt(argc, argv, "1dv46fHs:l:I:i:hu:m:L:A:p:")) != -1) { + while ((optc = getopt(argc, argv, "1dv46fHs:l:I:i:hu:m:L:A:p:V")) != -1) { switch (optc) { case '1': single_connection = 1; @@ -651,6 +648,9 @@ case 'H': fprintf(stderr, "%s: warning: -H is deprecated, please use proper combination of -4 and -6.\n", argv[0]); break; + case 'V': + printf("%s\n", PACKAGE_STRING); + exit(0); default: return 1; } @@ -848,8 +848,8 @@ int client_fd; char *client_addr; int client_port; - struct sockaddr sa; - unsigned int sa_len = sizeof(sa); + struct sockaddr_in6 sin6; // assume it's no smaller than sockaddr_in + unsigned int sin6_len = sizeof(sin6); FD_ZERO(&rds); FD_SET(listen_fd, &rds); @@ -862,19 +862,18 @@ break; } - client_fd = accept(listen_fd, &sa, &sa_len); + client_fd = accept(listen_fd, (struct sockaddr*) &sin6, &sin6_len); if (client_fd == -1) { perror("accept"); break; } - client_addr = xntop(&sa); + client_addr = xntop((struct sockaddr*) &sin6); - client_port = (sa.sa_family == AF_INET) ? ((struct sockaddr_in*) &sa)->sin_port : - ((struct sockaddr_in6*) &sa)->sin6_port; + client_port = ntohs((sin6.sin6_family == AF_INET6) ? sin6.sin6_port : ((struct sockaddr_in*) &sin6)->sin_port); - debug("<%d> connection from %s,%d", client_fd, client_addr, ntohs(client_port)); + debug("<%d> connection from %s,%d", client_fd, client_addr, client_port); if (conn_limit && (conn_count >= conn_limit)) { debug(" -- rejected due to limit.\n"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/6tunnel-0.13/ChangeLog new/6tunnel-0.14/ChangeLog --- old/6tunnel-0.13/ChangeLog 2019-10-19 21:59:47.000000000 +0200 +++ new/6tunnel-0.14/ChangeLog 2025-09-03 20:15:40.000000000 +0200 @@ -1,3 +1,14 @@ +0.14 (2025-09-03) + +Changes by Wojtek Kaniewski: +- Modify test script to use Python 3. +- Remove unused variables. +- Stop using sockaddr for generic storage. +- Add -V parameter to print version. + +Changes by pgajdos: +- Fix compilation with GCC 15. + 0.13 (2019-10-19) Changes by Stuart Cardall: @@ -5,7 +16,7 @@ Changes by Paul Warren: - Avoid segfault in "-f" mode. - + Changes by Wojtek Kaniewski: - Support automake's "make check" target. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/6tunnel-0.13/TODO new/6tunnel-0.14/TODO --- old/6tunnel-0.13/TODO 2019-10-19 21:59:47.000000000 +0200 +++ new/6tunnel-0.14/TODO 2025-09-03 20:15:40.000000000 +0200 @@ -1,2 +1,3 @@ Resolve all names after startup -- Simonas Kareiva <[email protected]> UDP tunneling -- Nuno Amorim <[email protected]> +HTTP proxy mode adding X-Forwarded-For -- @cruunnerr diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/6tunnel-0.13/configure.ac new/6tunnel-0.14/configure.ac --- old/6tunnel-0.13/configure.ac 2019-10-19 21:59:47.000000000 +0200 +++ new/6tunnel-0.14/configure.ac 2025-09-03 20:15:40.000000000 +0200 @@ -1,4 +1,4 @@ -AC_INIT([6tunnel],[0.13],[]) +AC_INIT([6tunnel],[0.14],[]) AM_INIT_AUTOMAKE([1.14 foreign silent-rules subdir-objects tar-pax]) AC_PROG_CC AC_PROG_INSTALL @@ -9,25 +9,22 @@ test -d /usr/inet6/lib && LIBS="$LIBS -L/usr/inet6/lib" test -d /usr/local/inet6/lib && LIBS="$LIBS -L/usr/local/inet6/lib" -AC_CHECK_LIB(nsl, t_accept, LIBS="$LIBS -lnsl") -AC_CHECK_LIB(socket, socket, LIBS="$LIBS -lsocket") -AC_CHECK_LIB(inet6, main, LIBS="$LIBS -linet6") - -AC_STDC_HEADERS -AC_HAVE_HEADERS(sys/socket.h netinet/in.h arpa/inet.h netdb.h, , AC_MSG_ERROR([Socket related headers missing.])) -AC_CHECK_FUNCS(getaddrinfo, , AC_MSG_ERROR([Your system doesn't support IPv6.])) +AC_CHECK_LIB([nsl], [t_accept], LIBS="$LIBS -lnsl") +AC_CHECK_LIB([socket], [socket], LIBS="$LIBS -lsocket") +AC_CHECK_LIB([inet6], [main], LIBS="$LIBS -linet6") + +AC_CHECK_HEADERS([sys/socket.h netinet/in.h arpa/inet.h netdb.h], [], [AC_MSG_ERROR(Socket related headers missing.)]) +AC_CHECK_FUNCS([getaddrinfo], , AC_MSG_ERROR([Your system doesn't support IPv6.])) +AC_CHECK_TYPES([struct sockaddr_in6], , AC_MSG_ERROR([Your system doesn't support IPv6.]), [[#include <netinet/in.h>]]) AC_MSG_CHECKING([for AF_INET6]) -AC_TRY_COMPILE([#include <sys/socket.h>], [int x = AF_INET6;], [ +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/socket.h>]], [[int x = AF_INET6;]])],[ AC_MSG_RESULT(yes) -], [ +],[ AC_MSG_RESULT(no) AC_MSG_ERROR([Your system doesn't support IPv6.]) ]) -AC_SUBST(VERSION) -VERSION=`grep '6tunnel v' 6tunnel.c | sed 's/.*v//'` - AC_CONFIG_FILES([ Makefile ]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/6tunnel-0.13/test.py new/6tunnel-0.14/test.py --- old/6tunnel-0.13/test.py 2019-10-19 21:59:47.000000000 +0200 +++ new/6tunnel-0.14/test.py 2025-09-03 20:15:40.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 import os import socket @@ -8,7 +8,7 @@ (SUCCESS, COMMAND_FAIL, CONNECT_FAIL, DISCONNECT, ACCEPT_FAIL, DATA_MISMATCH) = range(6) labels = ["success", "command fail", "connection fail", "disconnection", "accept fail", "data mismatch"] -def test(expect, client_af, server_af, from_ip, to_ip, args="", client_sends_first="NICK nick\r\n", server_receives="NICK nick\r\n", app_responds="", app_inserts="", server_sends_then=":localhost 001 nick :Welcome\r\n"): +def test(expect, client_af, server_af, from_ip, to_ip, args="", client_sends_first=b"NICK nick\r\n", server_receives=b"NICK nick\r\n", app_responds=b"", app_inserts=b"", server_sends_then=b":localhost 001 nick :Welcome\r\n"): # Open and close a socket to get random port available client_sock = socket.socket(client_af, socket.SOCK_STREAM, 0) @@ -26,7 +26,7 @@ server_port = server_sock.getsockname()[1] all_args = "-1 %s %d %s %d" % (args, client_port, to_ip, server_port) - print "Running with %s" % all_args + print ("Running with %s" % all_args) if os.system("./6tunnel " + all_args) != 0: if expect != COMMAND_FAIL: raise Exception("expected %s yet command failed" % labels[expect]) @@ -139,11 +139,11 @@ # Test IRC password options -test(SUCCESS, socket.AF_INET, socket.AF_INET6, '127.0.0.1', '::1', '-I password', app_inserts="PASS password\r\n") +test(SUCCESS, socket.AF_INET, socket.AF_INET6, '127.0.0.1', '::1', '-I password', app_inserts=b"PASS password\r\n") -test(ACCEPT_FAIL, socket.AF_INET, socket.AF_INET6, '127.0.0.1', '::1', '-i password', client_sends_first="NICK nick\r\n") +test(ACCEPT_FAIL, socket.AF_INET, socket.AF_INET6, '127.0.0.1', '::1', '-i password', client_sends_first=b"NICK nick\r\n") -test(ACCEPT_FAIL, socket.AF_INET, socket.AF_INET6, '127.0.0.1', '::1', '-i password', client_sends_first="PASS invalid\r\nNICK nick\r\n", app_responds=":6tunnel 464 * :Password incorrect\r\n") +test(ACCEPT_FAIL, socket.AF_INET, socket.AF_INET6, '127.0.0.1', '::1', '-i password', client_sends_first=b"PASS invalid\r\nNICK nick\r\n", app_responds=b":6tunnel 464 * :Password incorrect\r\n") -test(SUCCESS, socket.AF_INET, socket.AF_INET6, '127.0.0.1', '::1', '-i password', client_sends_first="PASS password\r\nNICK nick\r\n") +test(SUCCESS, socket.AF_INET, socket.AF_INET6, '127.0.0.1', '::1', '-i password', client_sends_first=b"PASS password\r\nNICK nick\r\n")
