Files
Clara EnglerandZhenfu Shi 34c3c09f76 tor: update to version 0.4.9.9
This includes various security fixes as well as support for happy
families.  Besides, 0.4.8.X clients are expected to stop working in
September.
2026-06-17 16:04:00 +08:00

128 lines
5.2 KiB
Tcl
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
PortSystem 1.0
PortGroup openssl 1.0
name tor
conflicts tor-devel
version 0.4.9.9
revision 0
categories security net
platforms darwin
maintainers {i0ntempest @i0ntempest} openmaintainer
license BSD
description anonymizing overlay network for TCP
long_description Tor provides a distributed network of servers \
(onion routers). Users bounce their TCP streams \
(web traffic, FTP, SSH, etc.) around the \
routers. This makes it hard for recipients, \
observers, and even the onion routers \
themselves to track the source of the stream.
homepage https://www.torproject.org/
master_sites https://dist.torproject.org/
checksums rmd160 ad41b21e331c7f88c87b56eb3b3f7e46f0ff3e4d \
sha256 bd75ba7fd68f607c7806fcf70156a300aa926e9ad69a5e56a8e6414f5227e833 \
size 10968833
depends_lib-append port:libevent \
port:zlib
set torUser _tor
set torGroup _tor
add_users ${torUser} group=${torGroup} home=${prefix}/var/lib/${name}
# src/core/or/conflux_pool.h:39: error: redefinition of typedef conflux_t
# src/core/or/conflux.h:15: error: previous declaration of conflux_t was here
compiler.blacklist-append \
{*gcc-[34].*} {clang < 400}
configure.args-append \
--disable-silent-rules
# https://gitweb.torproject.org/torspec.git/tree/proposals/278-directory-compression-scheme-negotiation.txt
# All clients should aim at supporting the same set of supported compression schemes to avoid fingerprinting.
configure.args-append \
--disable-lzma \
--disable-zstd
# Xcode 14: ld: archive member '__.SYMDEF SORTED' is not mach-o or llvm bitcode file
patchfiles-append patch-remove-symdef.patch
post-destroot {
# Create a working torrc file with basic, locked-down permissions
xinstall -o ${torUser} -g ${torGroup} -m 0640 ${destroot}${prefix}/etc/${name}/torrc.sample ${destroot}${prefix}/etc/${name}/torrc
system -W ${destroot}${prefix}/etc/${name} "cat >> torrc <<LOCAL_TOR_CONFIGURATION
# Local Tor configuration
SocksPolicy accept 127.0.0.1 # accept only localhost connections
SocksPolicy reject *
ExitPolicy reject *:* # no exits allowed
DataDirectory ${prefix}/var/lib/${name}
PidFile ${prefix}/var/run/${name}/${name}.pid
# tor process uid
User ${torUser}
LOCAL_TOR_CONFIGURATION"
# backup torrc files
if {[file exists ${prefix}/etc/${name}/torrc]} {
move ${destroot}${prefix}/etc/${name}/torrc \
${destroot}${prefix}/etc/${name}/torrc.new
copy ${prefix}/etc/${name}/torrc \
${destroot}${prefix}/etc/${name}/torrc.mp_backup
file attributes ${destroot}${prefix}/etc/${name}/torrc.mp_backup \
-owner ${torUser} -group ${torGroup} \
-permissions 0660
}
}
post-activate {
# DataDirectory and PID file Ddirectory permissions
system "chown ${torUser}:${torGroup} ${prefix}/var/lib/${name}"
system "chmod 0750 ${prefix}/var/lib/${name}"
system "chown ${torUser}:${torGroup} ${prefix}/var/run/${name}"
system "chmod 0750 ${prefix}/var/run/${name}"
if {![file exists ${prefix}/etc/${name}/torrc]} {
# restore config files
if {[file exists ${prefix}/etc/${name}/torrc.mp_backup]} {
copy ${prefix}/etc/${name}/torrc.mp_backup \
${prefix}/etc/${name}/torrc
} else {
copy ${prefix}/etc/${name}/torrc.new \
${prefix}/etc/${name}/torrc
}
file attributes ${prefix}/etc/${name}/torrc \
-owner ${torUser} -group ${torGroup} \
-permissions 0660
}
}
test.run yes
test.target check
platform darwin {
startupitem.create yes
startupitem.name Tor
startupitem.start "\[ -f \"${prefix}/etc/${name}/torrc\" \] \\"
startupitem.start-append "\t&& ${prefix}/bin/${name} \\"
startupitem.start-append "\t\t-f ${prefix}/etc/${name}/torrc 2>/dev/null"
startupitem.stop "if \[ -f \"${prefix}/var/run/${name}/${name}.pid\" \]; then"
startupitem.stop-append "\tkill `cat ${prefix}/var/run/${name}/${name}.pid` \\"
startupitem.stop-append "\t\t&& rm -f ${prefix}/var/run/${name}/${name}.pid"
startupitem.stop-append "else"
startupitem.stop-append "\t/usr/bin/killall -SIGUSR1 ${name} 2>/dev/null"
startupitem.stop-append "fi"
startupitem.pidfile none ${prefix}/var/run/${name}/${name}.pid
}
destroot.keepdirs ${destroot}${prefix}/var/lib/${name} \
${destroot}${prefix}/var/run/${name} \
${destroot}${prefix}/var/log/${name}
livecheck.type regex
livecheck.url ${master_sites}?C=M\;O=D
livecheck.regex ${name}-(\\d+\\.\\d+\\.\\d+\\.\\d+)${extract.suffix}