net/hanstunnel: update to 0.4.4 [1] and improve

- Revert r326014 as nothing to substitute in pkg-message [1]
- Clarify server works only on Linux [1]
- Unbreak build on DragonFly [2]
- Drop poorly maintained CLANG option [3]
- Simplify patching via MAKE_ARGS
- Respect LOCALBASE != PREFIX
- Pet portlint (makepatch)
- Clarify LICENSE

PR:		195313
Reported by:	DPorts [2]
Requested by:	many [3]
Submitted by:	vsityz@gmail.com (maintainer [1], based on)
Reviewed by:	marino [2]
Approved by:	maintainer timeout (~3 weeks)
This commit is contained in:
Jan Beich 2015-05-13 16:14:46 +00:00
parent 10a58414da
commit d4b48afd79
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=386226
12 changed files with 49 additions and 181 deletions

View file

@ -2,42 +2,30 @@
# $FreeBSD$ # $FreeBSD$
PORTNAME= hans PORTNAME= hans
PORTVERSION= 0.4.1 PORTVERSION= 0.4.4
PORTREVISION= 1
CATEGORIES= net security CATEGORIES= net security
MASTER_SITES= SF/hanstunnel/source MASTER_SITES= SF/hanstunnel/source
MAINTAINER= vsityz@gmail.com MAINTAINER= vsityz@gmail.com
COMMENT= Hans makes it possible to tunnel IPv4 through ICMP COMMENT= Hans makes it possible to tunnel IPv4 through ICMP
LICENSE= GPLv3 LICENSE= FPL GPLv3 # or any later version
LICENSE_COMB= multi
OPTIONS_DEFINE= CLANG LICENSE_NAME_FPL=Freeware Public License
LICENSE_FILE_FPL=${WRKSRC}/src/sha1_license.txt
CLANG_DESC= Build with Clang instead of GCC LICENSE_PERMS_FPL=dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
OPTIONS_DEFAULT= CLANG
USES= dos2unix
DOS2UNIX_FILES= ${LICENSE_FILE_FPL}
MAKE_ARGS= GCC="${CC}" GPP="${CXX}" \
CFLAGS="${CFLAGS} -c" LDFLAGS="${LDFLAGS}" \
TUN_DEV_FILE="src/tun_dev_freebsd.c"
PLIST_FILES= bin/hans PLIST_FILES= bin/hans
SUB_FILES= pkg-message # Remove CRs before ask-license to fix formatting in dialog(1)
post-extract: dos2unix
.include <bsd.port.options.mk>
.if ${PORT_OPTIONS:MCLANG}
.if ${OSVERSION} >= 900033 && exists(/usr/bin/clang)
CC= clang
CXX= clang++
.else
BUILD_DEPENDS+= clang33:${PORTSDIR}/lang/clang33
CC= clang33
CXX= clang++33
.endif
.else
USE_GCC= any
.endif
do-install: do-install:
${INSTALL_PROGRAM} ${WRKSRC}/hans ${STAGEDIR}${LOCALBASE}/bin ${INSTALL_PROGRAM} ${WRKSRC}/hans ${STAGEDIR}${PREFIX}/bin
.include <bsd.port.mk> .include <bsd.port.mk>

View file

@ -1,2 +1,2 @@
SHA256 (hans-0.4.1.tar.gz) = 8e4df005bcf6a877ffd0810cc9b31aa3ae04f23d798bea6cc2893a3f26cac29c SHA256 (hans-0.4.4.tar.gz) = 81378258b8c9510ac01ad4d69f191e2927b9304daae033ee097f6ba4d39f6bb3
SIZE (hans-0.4.1.tar.gz) = 32860 SIZE (hans-0.4.4.tar.gz) = 33992

View file

@ -1,73 +0,0 @@
--- Makefile.orig 2010-02-17 17:30:21.000000000 +0200
+++ Makefile 2013-04-04 15:18:50.818219413 +0300
@@ -1,53 +1,51 @@
-LDFLAGS = `sh osflags ld $(MODE)`
-CFLAGS = -c -g `sh osflags c $(MODE)`
-TUN_DEV_FILE = `sh osflags dev $(MODE)`
-GCC = gcc
-GPP = g++
+TUN_DEV_FILE = tun_dev_freebsd.c
+GCC = ${CC}
+GPP = ${CXX}
all: hans
hans: tun.o sha1.o main.o client.o server.o auth.o worker.o time.o tun_dev.o echo.o exception.o utility.o
- $(GPP) -o hans tun.o sha1.o main.o client.o server.o auth.o worker.o time.o tun_dev.o echo.o exception.o utility.o $(LDFLAGS)
+ ${GPP} -o hans tun.o sha1.o main.o client.o server.o auth.o worker.o time.o tun_dev.o echo.o exception.o utility.o ${LDFLAGS}
utility.o: utility.cpp utility.h
- $(GPP) -c utility.cpp $(CFLAGS)
+ ${GPP} -c utility.cpp ${CFLAGS}
exception.o: exception.cpp exception.h
- $(GPP) -c exception.cpp $(CFLAGS)
+ ${GPP} -c exception.cpp ${CFLAGS}
echo.o: echo.cpp echo.h exception.h
- $(GPP) -c echo.cpp $(CFLAGS)
+ ${GPP} -c echo.cpp ${CFLAGS}
tun.o: tun.cpp tun.h exception.h utility.h tun_dev.h
- $(GPP) -c tun.cpp $(CFLAGS)
+ ${GPP} -c tun.cpp ${CFLAGS}
tun_dev.o:
- $(GCC) -c $(TUN_DEV_FILE) -o tun_dev.o $(CFLAGS)
+ ${GCC} -c ${TUN_DEV_FILE} -o tun_dev.o ${CFLAGS}
sha1.o: sha1.cpp sha1.h
- $(GPP) -c sha1.cpp $(CFLAGS)
+ ${GPP} -c sha1.cpp ${CFLAGS}
main.o: main.cpp client.h server.h exception.h worker.h auth.h time.h echo.h tun.h tun_dev.h
- $(GPP) -c main.cpp $(CFLAGS)
+ ${GPP} -c main.cpp ${CFLAGS}
client.o: client.cpp client.h server.h exception.h config.h worker.h auth.h time.h echo.h tun.h tun_dev.h
- $(GPP) -c client.cpp $(CFLAGS)
+ ${GPP} -c client.cpp ${CFLAGS}
server.o: server.cpp server.h client.h utility.h config.h worker.h auth.h time.h echo.h tun.h tun_dev.h
- $(GPP) -c server.cpp $(CFLAGS)
+ ${GPP} -c server.cpp ${CFLAGS}
auth.o: auth.cpp auth.h sha1.h utility.h
- $(GPP) -c auth.cpp $(CFLAGS)
+ ${GPP} -c auth.cpp ${CFLAGS}
worker.o: worker.cpp worker.h tun.h exception.h time.h echo.h tun_dev.h config.h
- $(GPP) -c worker.cpp $(CFLAGS)
+ ${GPP} -c worker.cpp ${CFLAGS}
time.o: time.cpp time.h
- $(GPP) -c time.cpp $(CFLAGS)
+ ${GPP} -c time.cpp ${CFLAGS}
clean:
rm -f tun.o sha1.o main.o client.o server.o auth.o worker.o time.o tun_dev.o echo.o exception.o utility.o tunemu.o hans
tunemu.o: tunemu.h tunemu.c
- $(GCC) -c tunemu.c -o tunemu.o
+ ${GCC} -c tunemu.c -o tunemu.o

View file

@ -1,11 +0,0 @@
--- client.cpp.orig 2010-02-17 17:30:21.000000000 +0200
+++ client.cpp 2013-04-03 16:05:10.000000000 +0300
@@ -27,6 +27,8 @@
#include <arpa/inet.h>
#include <syslog.h>
+#include <netinet/in.h>
+
using namespace std;
const Worker::TunnelHeader::Magic Client::magic("hanc");

View file

@ -1,10 +0,0 @@
--- main.cpp.orig 2014-08-06 10:11:00.000000000 -0400
+++ main.cpp 2014-08-06 10:11:12.000000000 -0400
@@ -30,6 +30,7 @@
#include <stdlib.h>
#include <errno.h>
#include <syslog.h>
+#include <unistd.h>
void usage()
{

View file

@ -1,9 +1,10 @@
--- echo.cpp.orig 2014-08-06 10:11:40.000000000 -0400 --- src/echo.cpp.orig 2014-02-07 03:36:31 UTC
+++ echo.cpp 2014-08-06 10:11:56.000000000 -0400 +++ src/echo.cpp
@@ -20,6 +20,7 @@ @@ -19,7 +19,7 @@
#include "echo.h" #include "echo.h"
#include "exception.h" #include "exception.h"
-
+#include <sys/types.h> +#include <sys/types.h>
#include <sys/socket.h> #include <sys/socket.h>
#include <netinet/in_systm.h> #include <netinet/in_systm.h>

View file

@ -0,0 +1,11 @@
--- src/tun.cpp.orig 2014-02-07 03:36:31 UTC
+++ src/tun.cpp
@@ -20,7 +20,7 @@
#include "tun.h"
#include "exception.h"
#include "utility.h"
-
+#include <sys/types.h>
#include <arpa/inet.h>
#include <netinet/in_systm.h>
#include <netinet/in.h>

View file

@ -0,0 +1,14 @@
--- src/tun_dev_freebsd.c.orig 2014-02-07 03:36:31 UTC
+++ src/tun_dev_freebsd.c
@@ -31,7 +31,11 @@
#include <errno.h>
#include <sys/ioctl.h>
+#ifdef __DragonFly__
+#include <net/tun/if_tun.h>
+#else
#include <net/if_tun.h>
+#endif
/* #include "vtun.h"
#include "lib.h" */

View file

@ -1,45 +0,0 @@
--- tun.cpp.orig 2010-02-17 10:30:21.000000000 -0500
+++ tun.cpp 2014-08-06 10:10:51.000000000 -0400
@@ -21,6 +21,7 @@
#include "exception.h"
#include "utility.h"
+#include <sys/types.h>
#include <arpa/inet.h>
#include <netinet/in_systm.h>
#include <netinet/in.h>
@@ -41,8 +42,7 @@
if (device != NULL)
{
- strncpy(this->device, device, VTUN_DEV_LEN);
- this->device[VTUN_DEV_LEN] = 0;
+ strlcpy(this->device, device, VTUN_DEV_LEN);
}
else
this->device[0] = 0;
@@ -68,23 +68,17 @@
string ips = Utility::formatIp(ip);
string destIps = Utility::formatIp(destIp);
-#ifdef LINUX
- snprintf(cmdline, sizeof(cmdline), "/sbin/ifconfig %s %s netmask 255.255.255.0", device, ips.c_str());
-#else
- snprintf(cmdline, sizeof(cmdline), "/sbin/ifconfig %s %s %s netmask 255.255.255.255", device, ips.c_str(), destIps.c_str());
-#endif
+ snprintf(cmdline, sizeof(cmdline), "/sbin/ifconfig %s %s %s netmask 255.255.255.0", device, ips.c_str(), destIps.c_str());
if (system(cmdline) != 0)
syslog(LOG_ERR, "could not set tun device ip address");
-#ifndef LINUX
if (includeSubnet)
{
snprintf(cmdline, sizeof(cmdline), "/sbin/route add %s/24 %s", destIps.c_str(), destIps.c_str());
if (system(cmdline) != 0)
syslog(LOG_ERR, "could not add route");
}
-#endif
}
void Tun::write(const char *buffer, int length)

View file

@ -1,10 +0,0 @@
--- utility.cpp.orig 2014-08-06 10:12:15.000000000 -0400
+++ utility.cpp 2014-08-06 10:12:30.000000000 -0400
@@ -21,6 +21,7 @@
#include <stdlib.h>
#include <stdio.h>
+#include <time.h>
using namespace std;

View file

@ -3,4 +3,7 @@ could call it a ping tunnel. This can be useful when you find yourself
in the situation that your Internet access is firewalled, but pings are in the situation that your Internet access is firewalled, but pings are
allowed. allowed.
Hans runs on Linux as a client and a server. It runs on Mac OS X,
iPhone/iPod touch, FreeBSD and OpenBSD as a client only.
WWW: http://code.gerade.org/hans/ WWW: http://code.gerade.org/hans/