Date: Fri, 13 Feb 2009 02:45:39 GMT From: Andrei Lavreniyuk <andy.lavr@gmail.com> To: freebsd-gnats-submit@FreeBSD.org Subject: ports/131628: New port: net/torsocks Most socks-friendly applications way with Tor Message-ID: <200902130245.n1D2jdnr074374@www.freebsd.org> Resent-Message-ID: <200902130250.n1D2o1SO086728@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 131628 >Category: ports >Synopsis: New port: net/torsocks Most socks-friendly applications way with Tor >Confidential: no >Severity: non-critical >Priority: high >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Fri Feb 13 02:50:01 UTC 2009 >Closed-Date: >Last-Modified: >Originator: Andrei Lavreniyuk >Release: FreeBSD 7.1-STABLE >Organization: Technica-03, Inc. Ukraine, Kiev. >Environment: FreeBSD datacenter.technica-03.local 7.1-STABLE FreeBSD 7.1-STABLE #1: Mon Jan 5 17:35:27 EET 2009 root@datacenter.technica-03.local:/usr/obj/usr/src/sys/SMP-DATACENTER i386 >Description: New port: net/torsocks Torsocks allows you to use most socks-friendly applications in a safe way with Tor. It ensures that DNS requests are handled safely and explicitly rejects UDP traffic from the application you're using. >How-To-Repeat: >Fix: Patch attached with submission follows: # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # /usr/ports/net/torsocks # /usr/ports/net/torsocks/pkg-descr # /usr/ports/net/torsocks/pkg-message # /usr/ports/net/torsocks/distinfo # /usr/ports/net/torsocks/Makefile # /usr/ports/net/torsocks/pkg-plist # /usr/ports/net/torsocks/files # /usr/ports/net/torsocks/files/patch-configure.in # /usr/ports/net/torsocks/files/patch-dead_pool.c # /usr/ports/net/torsocks/files/patch-Makefile.am # /usr/ports/net/torsocks/files/patch-tsocks.c # /usr/ports/net/torsocks/files/patch-usewithtor.in # echo c - /usr/ports/net/torsocks mkdir -p /usr/ports/net/torsocks > /dev/null 2>&1 echo x - /usr/ports/net/torsocks/pkg-descr sed 's/^X//' >/usr/ports/net/torsocks/pkg-descr << '737457117b6f64a97c8afae7932297e0' XTorsocks allows you to use most socks-friendly applications in Xa safe way with Tor. It ensures that DNS requests are handled Xsafely and explicitly rejects UDP traffic from the application Xyou're using. X XWWW: http://code.google.com/p/torsocks/ 737457117b6f64a97c8afae7932297e0 echo x - /usr/ports/net/torsocks/pkg-message sed 's/^X//' >/usr/ports/net/torsocks/pkg-message << 'ef9740b0728c4fbddaec0941174858bb' X X### X XSimple setup file was copied to ${PREFIX}/etc/torsocks.conf XAn example of a more complex setup file can be found in X${PREFIX}/share/examples/torsocks/ X X### ef9740b0728c4fbddaec0941174858bb echo x - /usr/ports/net/torsocks/distinfo sed 's/^X//' >/usr/ports/net/torsocks/distinfo << '1361154a4756936ad4e2e902138382f6' XMD5 (torsocks-1.0-gamma.tar.gz) = a55f99cf78654a990d0646fc767567ca XSHA256 (torsocks-1.0-gamma.tar.gz) = d13dbd7d97745ecac6cf3ecc3800535faa3c08f5b9b33f214e210afd7658aae6 XSIZE (torsocks-1.0-gamma.tar.gz) = 482415 1361154a4756936ad4e2e902138382f6 echo x - /usr/ports/net/torsocks/Makefile sed 's/^X//' >/usr/ports/net/torsocks/Makefile << 'e14e26c396b8a98ae1b108b560140a38' X# New ports collection makefile for: torsocks X# Date created: 13Fri February 2009 X# Whom: Andrei Lavreniyuk <andy.lavr@gmail.com> X# X# $FreeBSD$ X XPORTNAME= torsocks XPORTVERSION= 1.0 XCATEGORIES= net security XMASTER_SITES= ${MASTER_SITE_GOOGLE_CODE} \ X http://tor.reactor-xg.kiev.ua/files/ XDISTNAME=${PORTNAME}-${PORTVERSION}-gamma X XMAINTAINER= andy.lavr@gmail.com XCOMMENT= Most socks-friendly applications way with Tor X XCONFLICTS= tsocks-[0-9]* X XUSE_AUTOTOOLS= ${LIBTOOL} aclocal:110 autoheader:262 autoconf:262 automake:110 XACLOCAL_ARGS= -I ${LOCALBASE}/share/aclocal XAUTOMAKE_ARGS= --add-missing X XCONFIGURE_ENV= CPPFLAGS="${CPPFLAGS}" LDFLAGS="${LDFLAGS}" XCPPFLAGS= -I${LOCALBASE}/include XLDFLAGS= -L${LOCALBASE}/lib X XGNU_CONFIGURE= yes XUSE_GMAKE= yes XUSE_LDCONFIG= yes XUSE_GZIP= yes X XWRKSRC=${WRKDIR}/${PORTNAME}-${PORTVERSION}-gamma X XCONFIGURE_ARGS= --with-conf=${PREFIX}/etc/tsocks.conf \ X --libdir=${PREFIX}/lib X XMAN1= torsocks.1 XMAN5= torsocks.conf.5 XMAN8= torsocks.8 X X.if defined(WITHOUT_TORDNS) XCONFIGURE_ARGS+= --disable-tordns X.endif X X.if defined(WITH_SOCKSDNS) XCONFIGURE_ARGS+= --enable-socksdns X.endif X X.if defined(WITH_OLDMETHOD) XCONFIGURE_ARGS+= --enable-oldmethod X.endif X X.if defined(WITH_NODEBUG) XCONFIGURE_ARGS+= --disable-debug X.endif X X.if defined(WITH_HOSTNAMES) XCONFIGURE_ARGS+= --enable-hostnames X.endif X X.include <bsd.port.pre.mk> X X.if ${ARCH} != "i386" XTRYBROKEN= Not yet integrated and tested on !i386 X.elif ${OSVERSION} < 600000 XBROKEN= Not yet integrated and tested X.endif X Xpre-everything:: X.if !defined(WITHOUT_TORDNS) X @${ECHO_MSG} X @${ECHO_MSG} "You can use the WITHOUT_TORDNS=yes knob." X @${ECHO_MSG} "This option disables tordns, which causes" X @${ECHO_MSG} "names to be looked up in a way designed to" X @${ECHO_MSG} "work well with Tor." X @${ECHO_MSG} X.endif X X.if !defined(WITH_SOCKSDNS) X @${ECHO_MSG} X @${ECHO_MSG} "You can use the WITH_SOCKSDNS=yes knob." X @${ECHO_MSG} "This option causes tsocks to intercept" X @${ECHO_MSG} "DNS lookups and attempt to force them" X @${ECHO_MSG} "to use TCP instead of UDP and thus" X @${ECHO_MSG} "be proxied through the socks server." X @${ECHO_MSG} X.endif X X.if !defined(WITH_OLDMETHOD) X @${ECHO_MSG} X @${ECHO_MSG} "You can use the make WITH_OLDMETHOD=yes knob." X @${ECHO_MSG} "This forces tsocks not to use the" X @${ECHO_MSG} "RTLD_NEXT parameter to dlsym to get the" X @${ECHO_MSG} "address of the connect() method tsocks" X @${ECHO_MSG} "overrides, instead it loads a reference" X @${ECHO_MSG} "to the libc shared library and then uses dlsym()." X @${ECHO_MSG} X.endif X X.if !defined(WITH_NODEBUG) X @${ECHO_MSG} X @${ECHO_MSG} "You can use the make WITH_NODEBUG=yes knob." X @${ECHO_MSG} "This configuration option tells tsocks" X @${ECHO_MSG} "to never output error messages to stderr." X @${ECHO_MSG} X.endif X X.if !defined(WITH_HOSTNAMES) X @${ECHO_MSG} X @${ECHO_MSG} "You can use the make WITH_HOSTNAMES=yes knob." X @${ECHO_MSG} "This disables DNS lookups on names" X @${ECHO_MSG} "provided as socks servers in the config" X @${ECHO_MSG} "file. This option is necessary" X @${ECHO_MSG} "if socks dns is enabled since tsocks" X @${ECHO_MSG} "can't send a socks dns request to resolve" X @${ECHO_MSG} "the location of the socks server." X @${ECHO_MSG} X.endif X Xpost-patch: X @${REINPLACE_CMD} -e 's|@prefix@|${PREFIX}|' ${WRKSRC}/src/torsocks.in X Xpost-install: X ${LN} -s ${PREFIX}/bin/torsocks ${PREFIX}/bin/tsocks X ${LN} -s ${PREFIX}/lib/torsocks/libtorsocks.a ${PREFIX}/lib/libtorsocks.a X ${LN} -s ${PREFIX}/lib/torsocks/libtorsocks.la ${PREFIX}/lib/libtorsocks.la X ${LN} -s ${PREFIX}/lib/torsocks/libtorsocks.so.1 ${PREFIX}/lib/libtorsocks.so X ${LN} -s ${PREFIX}/lib/torsocks/libtorsocks.so.1 ${PREFIX}/lib/libtsocks.so X ${INSTALL_DATA} ${WRKSRC}/src/torsocks.conf ${PREFIX}/etc/torsocks.conf.sample X.if !defined(NOPORTEXAMPLES) X @${MKDIR} ${EXAMPLESDIR} X ${INSTALL_DATA} ${WRKSRC}/src/*.example ${EXAMPLESDIR} X.endif X.if !defined(NOPORTDOCS) X @${MKDIR} ${DOCSDIR} X ${INSTALL_DATA} ${WRKSRC}/INSTALL ${DOCSDIR}/README X.endif X @${CAT} ${PKGMESSAGE} X X.include <bsd.port.post.mk> e14e26c396b8a98ae1b108b560140a38 echo x - /usr/ports/net/torsocks/pkg-plist sed 's/^X//' >/usr/ports/net/torsocks/pkg-plist << '37fd0dc7e30375c7c4e634c4f51bd818' Xbin/torsocks Xbin/tsocks Xetc/torsocks.conf Xetc/torsocks.conf.sample Xlib/torsocks/libtorsocks.a Xlib/torsocks/libtorsocks.la Xlib/torsocks/libtorsocks.so.1 Xlib/torsocks/libtorsocks.so Xlib/libtorsocks.a Xlib/libtorsocks.la Xlib/libtorsocks.so Xlib/libtsocks.so X%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tsocks.conf.complex.example X%%PORTEXAMPLES%%%%EXAMPLESDIR%%/tsocks.conf.simple.example X%%PORTDOCS%%%%DOCSDIR%%/README X@dirrm %%EXAMPLESDIR%% X@dirrm %%DOCSDIR%% X@dirrm /lib/torsocks X 37fd0dc7e30375c7c4e634c4f51bd818 echo c - /usr/ports/net/torsocks/files mkdir -p /usr/ports/net/torsocks/files > /dev/null 2>&1 echo x - /usr/ports/net/torsocks/files/patch-configure.in sed 's/^X//' >/usr/ports/net/torsocks/files/patch-configure.in << '607fe53ce01dcacb9f9891a9842cfade' X--- configure.in.orig 2009-02-12 15:59:50.000000000 +0200 X+++ configure.in 2009-02-12 17:27:16.000000000 +0200 X@@ -123,11 +123,9 @@ X dnl Checks for libraries. X dnl Replace `main' with a function in -ldl: X X-AC_CHECK_LIB(dl, dlsym, [ tempdso="yes" ],tempdso="no") X-if test "$tempdso" = "no"; then X- AC_CHECK_LIB(c, dlsym,,AC_MSG_ERROR("dlsym() not found in libc or libdl." \ X- "Check your system for libc.so and/or libdl.so.")) X-fi X+dnl Checks for libraries. X+AC_CHECK_LIB(c, dlsym,,AC_MSG_ERROR(""dlsym() not found in libc." \ X+ "Check your system for libc.so.")) X X AC_CHECK_LIB(resolv, res_query, [ tempres="no" ],tempres="yes") X if test "$tempres" = "no"; then X@@ -356,8 +354,8 @@ X dnl Find the correct res_querydomain prototype on this machine X AC_MSG_CHECKING(for correct res_querydomain prototype) X PROTO= X-PROTO1='const char *name, const char *domain, int class, int type, unsigned char *answer, int anslen' X-for testproto in "${PROTO1}" X+PROTO1='const char *name, const char *domain, int class, int type, u_char *answer, int anslen' X+for PROTO in "${PROTO1}" X do X if test "${PROTO}" = ""; then X AC_TRY_COMPILE([ X@@ -376,8 +374,8 @@ X AC_MSG_CHECKING(for correct res_send prototype) X PROTO= X PROTO1='const char *msg, int msglen, char *answer, int anslen' X-PROTO2='const unsigned char *msg, int msglen, unsigned char *answer, int anslen' X-for testproto in "${PROTO1}" \ X+PROTO2='const u_char *msg, int msglen, u_char *answer, int anslen' X+for PROTO in "${PROTO1}" \ X "${PROTO2}" X do X if test "${PROTO}" = ""; then X@@ -397,8 +395,8 @@ X dnl Find the correct res_search prototype on this machine X AC_MSG_CHECKING(for correct res_search prototype) X PROTO= X-PROTO1='const char *dname, int class, int type,unsigned char *answer, int anslen' X-for testproto in "${PROTO1}" X+PROTO1='const char *dname, int class, int type, u_char *answer, int anslen' X+for PROTO in "${PROTO1}" X do X if test "${PROTO}" = ""; then X AC_TRY_COMPILE([ X@@ -417,8 +415,8 @@ X dnl Find the correct res_query prototype on this machine X AC_MSG_CHECKING(for correct res_query prototype) X PROTO= X-PROTO1='const char *dname, int class, int type,unsigned char *answer, int anslen' X-for testproto in "${PROTO1}" X+PROTO1='const char *dname, int class, int type, u_char *answer, int anslen' X+for PROTO in "${PROTO1}" X do X if test "${PROTO}" = ""; then X AC_TRY_COMPILE([ X@@ -462,7 +460,7 @@ X dnl Find the correct poll prototype on this machine X AC_MSG_CHECKING(for correct poll prototype) X PROTO= X-for testproto in 'struct pollfd *ufds, unsigned long nfds, int timeout' \ X+for testproto in 'struct pollfd *ufds, u_long nfds, int timeout' \ X 'struct pollfd *ufds, nfds_t nfds, int timeout' X do X if test "${PROTO}" = ""; then 607fe53ce01dcacb9f9891a9842cfade echo x - /usr/ports/net/torsocks/files/patch-dead_pool.c sed 's/^X//' >/usr/ports/net/torsocks/files/patch-dead_pool.c << '86a2c579370b3f90085824d202d14841' X--- src/dead_pool.c.orig 2009-02-12 15:59:50.000000000 +0200 X+++ src/dead_pool.c 2009-02-12 17:19:10.000000000 +0200 X@@ -100,7 +100,7 @@ X /* Allocate space for the dead_pool structure */ X newpool = (dead_pool *) mmap(0, sizeof(dead_pool), X PROT_READ | PROT_WRITE, X- MAP_SHARED | MAP_ANONYMOUS, -1, 0); X+ MAP_SHARED | MAP_ANON, -1, 0); X if(!newpool) { X show_msg(MSGERR, "init_pool: unable to mmap deadpool " X "(tried to map %d bytes)\n", sizeof(dead_pool)); X@@ -127,7 +127,7 @@ X /* Allocate space for the entries */ X newpool->entries = (pool_ent *) mmap(0, newpool->n_entries * sizeof(pool_ent), X PROT_READ | PROT_WRITE, X- MAP_SHARED | MAP_ANONYMOUS, -1, 0); X+ MAP_SHARED | MAP_ANON, -1, 0); X if(!newpool->entries) { X munmap((void *)newpool, sizeof(dead_pool)); X show_msg(MSGERR, "init_pool: unable to mmap deadpool entries " 86a2c579370b3f90085824d202d14841 echo x - /usr/ports/net/torsocks/files/patch-Makefile.am sed 's/^X//' >/usr/ports/net/torsocks/files/patch-Makefile.am << '48f603ed7f27409541a2446d782718dc' X--- src/Makefile.am.orig 2009-02-12 17:44:45.000000000 +0200 X+++ src/Makefile.am 2009-02-12 17:44:08.000000000 +0200 X@@ -1,6 +1,6 @@ X # Makefile used by configure to create real Makefile X X-LIBS = -ldl -lc -lresolv X+LIBS = -lc X libdir = @prefix@/lib/torsocks X X # Install helper programs 48f603ed7f27409541a2446d782718dc echo x - /usr/ports/net/torsocks/files/patch-tsocks.c sed 's/^X//' >/usr/ports/net/torsocks/files/patch-tsocks.c << '0182336ebf9199df4e06c0f3d182f280' X--- src/tsocks.c.orig 2009-02-12 15:59:50.000000000 +0200 X+++ src/tsocks.c 2009-02-12 23:18:14.870533468 +0200 X@@ -164,7 +164,7 @@ X void tsocks_init(void) { X X #define LOAD_ERROR(s,l) { \ X- char *error; \ X+ const char *error; \ X error = dlerror(); \ X show_msg(l, "The symbol %s() was not found in any shared " \ X "library. The error reported was: %s!\n", s, \ 0182336ebf9199df4e06c0f3d182f280 echo x - /usr/ports/net/torsocks/files/patch-usewithtor.in sed 's/^X//' >/usr/ports/net/torsocks/files/patch-usewithtor.in << '20dadcd994b9bc76a67809fcfd268edb' X--- src/usewithtor.in.orig 2009-02-12 15:59:50.000000000 +0200 X+++ src/usewithtor.in 2009-02-12 19:49:41.000000000 +0200 X@@ -1,3 +1,5 @@ X+#!/bin/sh X+# X # *************************************************************************** X # * * X # * $Id: usewithtor.in,v 1.3 2008-07-06 15:17:35 hoganrobert Exp $* X@@ -26,7 +28,6 @@ X # *************************************************************************** X X X-#! /bin/sh X X # Wrapper script for use of the torsocks(8) transparent socksification library X # See the torsocks(1) and usewithtor(1) manpages. 20dadcd994b9bc76a67809fcfd268edb exit >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200902130245.n1D2jdnr074374>