# Buildsheet autogenerated by ravenadm tool -- Do not edit. NAMEBASE= tor VERSION= 0.4.7.16 KEYWORDS= security net VARIANTS= standard SDESC[standard]= Anonymizing overlay network for TCP HOMEPAGE= https://www.torproject.org/ CONTACT= nobody DOWNLOAD_GROUPS= main SITES[main]= TOR/ DISTFILE[1]= tor-0.4.7.16.tar.gz:main DF_INDEX= 1 SPKGS[standard]= complete primary docs OPTIONS_AVAILABLE= none OPTIONS_STANDARD= none BUILD_DEPENDS= asciidoc:single:standard nss:dev:standard libevent:dev:standard BUILDRUN_DEPENDS= libevent:primary:standard nss:primary:standard USERS= _tor GROUPS= _tor USERGROUP_SPKG= primary USES= cpe gmake pkgconfig ssl zlib zstd xz cclibs:primary LICENSE= BSD3CLAUSE:primary LICENSE_FILE= BSD3CLAUSE:{{WRKSRC}}/LICENSE LICENSE_SCHEME= solo CPE_VENDOR= torproject FPC_EQUIVALENT= security/tor MUST_CONFIGURE= gnu CONFIGURE_ARGS= --with-openssl-dir="{{OPENSSLBASE}}" --enable-linker-hardening --enable-zstd --enable-lzma --enable-nss --disable-systemd CONFIGURE_ENV= TOR_CPPFLAGS_libevent="-I{{LOCALBASE}}/include" TOR_LDFLAGS_libevent="-L{{LOCALBASE}}/lib/" TOR_LIBEVENT_LIBS="-levent" tor_cv_cflags__Wextra_semi=no PLIST_SUB= USER="{{USERS}}" GROUP="{{GROUPS}}" RC_SUBR= tor:primary SUB_LIST= USER="{{USERS}}" GROUP="{{GROUPS}}" post-patch: ${REINPLACE_CMD} -E -e "s@(-z) (relro|now)@-Wl,\1,\2@g" \ ${WRKSRC}/configure ${REINPLACE_CMD} -e 's|lib/tor|db/tor|' \ ${WRKSRC}/src/config/torrc.*.in \ ${WRKSRC}/doc/man/tor.1.* \ ${WRKSRC}/doc/man/tor.html.in ${REINPLACE_CMD} -e '/SOURCE_DATE_EPOCH/d' ${WRKSRC}/doc/asciidoc-helper.sh ${REINPLACE_CMD} -e "s@-ltcmalloc@${LOCALBASE}/lib/libtcmalloc.so@" \ ${WRKSRC}/configure post-install: ${MKDIR} ${STAGEDIR}/var/log/tor \ ${STAGEDIR}/var/run/tor \ ${STAGEDIR}/var/db/tor [FILE:547:descriptions/desc.primary] Tor: an anonymizing overlay network for TCP Tor is a connection-based low-latency anonymous communication system which addresses many flaws in the original onion routing design. Tor is a toolset for a wide range of organizations and people that want to improve their safety and security on the Internet. Using Tor can help you anonymize web browsing and publishing, instant messaging, IRC, SSH, and more. Tor also provides a platform on which software developers can build new applications with built-in anonymity, safety, and privacy features. [FILE:98:distinfo] 5aeeb071bd5c12eb2eec140a87f94052ecaeb03b5e1cee7d1e5cf1a3cbee7a7c 8120424 tor-0.4.7.16.tar.gz [FILE:345:manifests/plist.primary] @sample etc/tor/torrc.sample bin/ tor tor-print-ed-signing-cert tor-resolve torify share/man/man1/ tor-gencert.1.gz tor-print-ed-signing-cert.1.gz tor-resolve.1.gz tor.1.gz torify.1.gz share/tor/ geoip geoip6 @dir(%%USER%%,%%GROUP%%,700) /var/db/tor @dir(%%USER%%,%%GROUP%%,700) /var/log/tor @dir(%%USER%%,%%GROUP%%,700) /var/run/tor [FILE:106:manifests/plist.docs] share/doc/tor/ tor-gencert.html tor-print-ed-signing-cert.html tor-resolve.html tor.html torify.html [FILE:4107:files/tor.in] #!/bin/sh # # PROVIDE: tor # REQUIRE: DAEMON FILESYSTEMS # BEFORE: LOGIN # # Add the following lines to /etc/rc.conf to enable tor. # All these options will overide any settings in your local torrc as # they are command line options. # # tor_enable (bool): Set it to "YES" to enable tor. Default: NO # tor_instances (str): List of instances. Default: "" # tor_conf (str): Points to your torrc file. # Default: %%PREFIX%%/etc/tor/torrc # tor_user (str): Tor daemon user. Default: %%USER%% # tor_group (str): Tor group. Default: %%GROUP%% # tor_pidfile (str): Tor pid file. Default: /var/run/tor/tor.pid # tor_datadir (str): Tor datadir. Default: /var/db/tor # tor_disable_default_instance (str): Doesn't run the default instance. # Only valid when tor_instances is used. # Default: NO # tor_setuid (str): Runtime setuid. Default: NO # # The instance definition that tor_instances expects: # inst_name{:inst_conf:inst_user:inst_group:inst_pidfile:inst_data_dir} # . /etc/rc.subr name="tor" rcvar=tor_enable exit_code=0 load_rc_config ${name} : ${tor_enable="NO"} : ${tor_instances=""} : ${tor_conf="%%PREFIX%%/etc/tor/torrc"} : ${tor_user="%%USER%%"} : ${tor_group="%%GROUP%%"} : ${tor_pidfile="/var/run/tor/tor.pid"} : ${tor_datadir="/var/db/tor"} : ${tor_disable_default_instance="NO"} : ${tor_setuid="NO"} instance=${slave_instance} if [ -n "${instance}" ]; then inst_def=${instance} inst_name=${inst_def%%:*} [ "${inst_name}" != "main" ] || err 1 "${name} instance can't be named 'main'" inst_def=${inst_def#$inst_name} if [ -n "$inst_def" ]; then # extended instance: parameters are set explicitly inst_def=${inst_def#:} tor_conf=${inst_def%%:*} inst_def=${inst_def#$tor_conf:} tor_user=${inst_def%%:*} inst_def=${inst_def#$tor_user:} tor_group=${inst_def%%:*} inst_def=${inst_def#$tor_group:} tor_pidfile=${inst_def%%:*} tor_datadir=${inst_def#$tor_pidfile:} if [ -z "${tor_conf}" -o -z "${tor_user}" -o -z "${tor_group}" -o -z "${tor_pidfile}" -o -z "${tor_datadir}" ]; then warn "invalid tor instance ${inst_name} settings: ${instance}" exit 1 fi else # regular instance: default parameters are used tor_conf=${tor_conf}@${inst_name} tor_pidfile=${tor_pidfile}@${inst_name} tor_datadir=${tor_datadir}/instance@${inst_name} fi if ! [ -r ${tor_conf} ]; then warn "tor instance ${inst_name} config file ${tor_conf} doesn't exist or isn't readable" warn "you can copy the sample config %%PREFIX%%/etc/tor/torrc.sample and modify it" exit 1 fi if ! [ -d ${tor_datadir} ]; then mkdir -p ${tor_datadir} && chown ${tor_user}:${tor_group} ${tor_datadir} && chmod 0700 ${tor_datadir} && echo "${name}: created the instance data directory ${tor_datadir}" fi fi if [ -z "${instance}" -a -n "${tor_instances}" ]; then inst_only="$2" inst_done=0 for i in ${tor_instances}; do inst_name=${i%%:*} if [ -z "${inst_only}" -o "${inst_name}" = "${inst_only}" ]; then echo -n "${name} instance ${inst_name}: " if ! slave_instance=${i} %%PREFIX%%/etc/rc.d/tor "$1"; then exit_code=1 fi inst_done=$((inst_done+1)) fi done if [ -z "${inst_only}" -o "${inst_only}" = "main" ]; then checkyesno tor_disable_default_instance && return $exit_code echo -n "${name} main instance: " elif [ -n "${inst_only}" ]; then [ $inst_done -gt 0 ] || err 1 "${name} instance '$inst_only' isn't defined" return $exit_code fi fi required_files=${tor_conf} required_dirs=${tor_datadir} pidfile=${tor_pidfile} command="%%PREFIX%%/bin/${name}" command_args="-f ${tor_conf} --PidFile ${tor_pidfile} --RunAsDaemon 1 --DataDirectory ${tor_datadir}" extra_commands="reload" if [ $tor_setuid = "YES" ]; then if ! grep -q "^User ${tor_user}$" ${tor_conf}; then echo "User ${tor_user}" >> ${tor_conf} fi tor_user="root" tor_group="wheel" else if grep -q "^User ${tor_user}$" ${tor_conf}; then sed -i '' -e "s/^User ${tor_user}$//" ${tor_conf} fi fi if ! run_rc_command "$1"; then exit_code=1 fi return $exit_code