diff --git a/net-p2p/reticulum/Makefile b/net-p2p/reticulum/Makefile index 7eafb2188db4..7fdcefd2299d 100644 --- a/net-p2p/reticulum/Makefile +++ b/net-p2p/reticulum/Makefile @@ -1,32 +1,32 @@ PORTNAME= reticulum -DISTVERSION= 0.6.2 +DISTVERSION= 0.7.0 CATEGORIES= net-p2p MASTER_SITES= PYPI DISTNAME= rns-${DISTVERSION} MAINTAINER= cs@FreeBSD.org COMMENT= Self-configuring, encrypted and resilient mesh networking stack WWW= https://reticulum.network/ LICENSE= MIT RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}netifaces>=0:net/py-netifaces@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pyserial>0:comms/py-pyserial@${PY_FLAVOR} USES= python USE_PYTHON= cryptography distutils USE_RC_SUBR= reticulum GROUPS= _reticulum USERS= _reticulum SUB_LIST= USERS="${USERS}" \ GROUPS="${GROUPS}" \ PYTHON=${PYTHON_CMD} PLIST_SUB= USERS="${USERS}" GROUPS="${GROUPS}" NO_ARCH= yes post-install: @${MKDIR} ${STAGEDIR}${ETCDIR} ${STAGEDIR}/var/db/reticulum ${STAGEDIR}/var/run/reticulum ${STAGEDIR}/var/log/reticulum ${INSTALL_DATA} ${PATCHDIR}/config.sample ${STAGEDIR}${ETCDIR}/config.sample .include diff --git a/net-p2p/reticulum/distinfo b/net-p2p/reticulum/distinfo index 044d34fe2e86..b32237bd29de 100644 --- a/net-p2p/reticulum/distinfo +++ b/net-p2p/reticulum/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1696875514 -SHA256 (rns-0.6.2.tar.gz) = cb7a093b2fdc610055797d53cdcef276f698de5e2406e57eddb348c9c06d10d7 -SIZE (rns-0.6.2.tar.gz) = 295554 +TIMESTAMP = 1706564248 +SHA256 (rns-0.7.0.tar.gz) = 192abd1a1d2735ca1fb22c23a254bbc31b217245077d38610a14864638154427 +SIZE (rns-0.7.0.tar.gz) = 300223 diff --git a/net-p2p/reticulum/files/config.sample b/net-p2p/reticulum/files/config.sample index 003c06bd5872..cc9dc03ac02e 100644 --- a/net-p2p/reticulum/files/config.sample +++ b/net-p2p/reticulum/files/config.sample @@ -1,342 +1,365 @@ # This is an example Reticulum config file. # You should probably edit it to include any additional, # interfaces and settings you might need. [reticulum] # Define the DB directory dbdir = "/var/db/reticulum" # If you enable Transport, your system will route traffic # for other peers, pass announces and serve path requests. # This should be done for systems that are suited to act # as transport nodes, ie. if they are stationary and # always-on. This directive is optional and can be removed # for brevity. -enable_transport = False +enable_transport = No # By default, the first program to launch the Reticulum # Network Stack will create a shared instance, that other # programs can communicate with. Only the shared instance # opens all the configured interfaces directly, and other # local programs communicate with the shared instance over # a local socket. This is completely transparent to the # user, and should generally be turned on. This directive # is optional and can be removed for brevity. share_instance = Yes # If you want to run multiple *different* shared instances # on the same system, you will need to specify different # shared instance ports for each. The defaults are given # below, and again, these options can be left out if you # don't need them. shared_instance_port = 37428 instance_control_port = 37429 + +# On systems where running instances may not have access +# to the same shared Reticulum configuration directory, +# it is still possible to allow full interactivity for +# running instances, by manually specifying a shared RPC +# key. In almost all cases, this option is not needed, but +# it can be useful on operating systems such as Android. +# The key must be specified as bytes in hexadecimal. + +# rpc_key = e5c032d3ec4e64a6aca9927ba8ab73336780f6d71790 + + # You can configure Reticulum to panic and forcibly close # if an unrecoverable interface error occurs, such as the # hardware device for an interface disappearing. This is # an optional directive, and can be left out for brevity. # This behaviour is disabled by default. panic_on_interface_error = No +# When Transport is enabled, it is possible to allow the +# Transport Instance to respond to probe requests from +# the rnprobe utility. This can be a useful tool to test +# connectivity. When this option is enabled, the probe +# destination will be generated from the Identity of the +# Transport Instance, and printed to the log at startup. +# Optional, and disabled by default. + +respond_to_probes = No + + [logging] # Valid log levels are 0 through 7: # 0: Log only critical information # 1: Log errors and lower log levels # 2: Log warnings and lower log levels # 3: Log notices and lower log levels # 4: Log info and lower (this is the default) # 5: Verbose logging # 6: Debug logging # 7: Extreme logging loglevel = 4 # The interfaces section defines the physical and virtual # interfaces Reticulum will use to communicate on. This # section will contain examples for a variety of interface # types. You can modify these or use them as a basis for # your own config, or simply remove the unused ones. [interfaces] # This interface enables communication with other # link-local Reticulum nodes over UDP. It does not # need any functional IP infrastructure like routers # or DHCP servers, but will require that at least link- # local IPv6 is enabled in your operating system, which # should be enabled by default in almost any OS. See # the Reticulum Manual for more configuration options. [[Default Interface]] type = AutoInterface enabled = yes # The following example enables communication with other # local Reticulum peers using UDP broadcasts. [[UDP Interface]] type = UDPInterface enabled = no listen_ip = 0.0.0.0 listen_port = 4242 forward_ip = 255.255.255.255 forward_port = 4242 # The above configuration will allow communication # within the local broadcast domains of all local # IP interfaces. # Instead of specifying listen_ip, listen_port, # forward_ip and forward_port, you can also bind # to a specific network device like below. # device = eth0 # port = 4242 # Assuming the eth0 device has the address # 10.55.0.72/24, the above configuration would # be equivalent to the following manual setup. # Note that we are both listening and forwarding to # the broadcast address of the network segments. # listen_ip = 10.55.0.255 # listen_port = 4242 # forward_ip = 10.55.0.255 # forward_port = 4242 # You can of course also communicate only with # a single IP address # listen_ip = 10.55.0.15 # listen_port = 4242 # forward_ip = 10.55.0.16 # forward_port = 4242 # This example demonstrates a TCP server interface. # It will listen for incoming connections on the # specified IP address and port number. [[TCP Server Interface]] type = TCPServerInterface enabled = no # This configuration will listen on all IP # interfaces on port 4242 listen_ip = 0.0.0.0 listen_port = 4242 # Alternatively you can bind to a specific IP # listen_ip = 10.0.0.88 # listen_port = 4242 # Or a specific network device # device = eth0 # port = 4242 # To connect to a TCP server interface, you would # naturally use the TCP client interface. Here's # an example. The target_host can either be an IP # address or a hostname [[TCP Client Interface]] type = TCPClientInterface enabled = no target_host = 127.0.0.1 target_port = 4242 # This example shows how to make your Reticulum # instance available over I2P, and connect to # another I2P peer. Please be aware that you # must have an I2P router running on your system # with the SAMv3 API enabled for this to work. [[I2P]] type = I2PInterface enabled = no connectable = yes peers = ykzlw5ujbaqc2xkec4cpvgyxj257wcrmmgkuxqmqcur7cq3w3lha.b32.i2p # Here's an example of how to add a LoRa interface # using the RNode LoRa transceiver. [[RNode LoRa Interface]] type = RNodeInterface # Enable interface if you want use it! enabled = no # Serial port for the device port = /dev/ttyUSB0 # Set frequency to 867.2 MHz frequency = 867200000 # Set LoRa bandwidth to 125 KHz bandwidth = 125000 # Set TX power to 7 dBm (5 mW) txpower = 7 # Select spreading factor 8. Valid # range is 7 through 12, with 7 # being the fastest and 12 having # the longest range. spreadingfactor = 8 # Select coding rate 5. Valid range # is 5 throough 8, with 5 being the # fastest, and 8 the longest range. codingrate = 5 # You can configure the RNode to send # out identification on the channel with # a set interval by configuring the # following two parameters. The trans- # ceiver will only ID if the set # interval has elapsed since it's last # actual transmission. The interval is # configured in seconds. # This option is commented out and not # used by default. # id_callsign = MYCALL-0 # id_interval = 600 # For certain homebrew RNode interfaces # with low amounts of RAM, using packet # flow control can be useful. By default # it is disabled. flow_control = False # An example KISS modem interface. Useful for running # Reticulum over packet radio hardware. [[Packet Radio KISS Interface]] type = KISSInterface # Enable interface if you want use it! enabled = no # Serial port for the device port = /dev/ttyUSB1 # Set the serial baud-rate and other # configuration parameters. speed = 115200 databits = 8 parity = none stopbits = 1 # Set the modem preamble. A 150ms # preamble should be a reasonable # default, but may need to be # increased for radios with slow- # opening squelch and long TX/RX # turnaround preamble = 150 # Set the modem TX tail. In most # cases this should be kept as low # as possible to not waste airtime. txtail = 10 # Configure CDMA parameters. These # settings are reasonable defaults. persistence = 200 slottime = 20 # You can configure the interface to send # out identification on the channel with # a set interval by configuring the # following two parameters. The KISS # interface will only ID if the set # interval has elapsed since it's last # actual transmission. The interval is # configured in seconds. # This option is commented out and not # used by default. # id_callsign = MYCALL-0 # id_interval = 600 # Whether to use KISS flow-control. # This is useful for modems that have # a small internal packet buffer, but # support packet flow control instead. flow_control = false # If you're using Reticulum on amateur radio spectrum, # you might want to use the AX.25 KISS interface. This # way, Reticulum will automatically encapsulate it's # traffic in AX.25 and also identify your stations # transmissions with your callsign and SSID. # # Only do this if you really need to! Reticulum doesn't # need the AX.25 layer for anything, and it incurs extra # overhead on every packet to encapsulate in AX.25. # # A more efficient way is to use the plain KISS interface # with the beaconing functionality described above. [[Packet Radio AX.25 KISS Interface]] type = AX25KISSInterface # Set the station callsign and SSID callsign = NO1CLL ssid = 0 # Enable interface if you want use it! enabled = no # Serial port for the device port = /dev/ttyUSB2 # Set the serial baud-rate and other # configuration parameters. speed = 115200 databits = 8 parity = none stopbits = 1 # Whether to use KISS flow-control. # This is useful for modems with a # small internal packet buffer. flow_control = false # Set the modem preamble. A 150ms # preamble should be a reasonable # default, but may need to be # increased for radios with slow- # opening squelch and long TX/RX # turnaround preamble = 150 # Set the modem TX tail. In most # cases this should be kept as low # as possible to not waste airtime. txtail = 10 # Configure CDMA parameters. These # settings are reasonable defaults. persistence = 200 slottime = 20 diff --git a/net-p2p/reticulum/pkg-plist b/net-p2p/reticulum/pkg-plist index 4552a4ae6dd6..929a5466fcae 100644 --- a/net-p2p/reticulum/pkg-plist +++ b/net-p2p/reticulum/pkg-plist @@ -1,245 +1,252 @@ bin/rncp bin/rnid +bin/rnir bin/rnodeconf bin/rnpath bin/rnprobe bin/rnsd bin/rnstatus bin/rnx @sample %%ETCDIR%%/config.sample %%PYTHON_SITELIBDIR%%/RNS/Buffer.py %%PYTHON_SITELIBDIR%%/RNS/Channel.py %%PYTHON_SITELIBDIR%%/RNS/Cryptography/AES.py %%PYTHON_SITELIBDIR%%/RNS/Cryptography/Ed25519.py %%PYTHON_SITELIBDIR%%/RNS/Cryptography/Fernet.py %%PYTHON_SITELIBDIR%%/RNS/Cryptography/HKDF.py %%PYTHON_SITELIBDIR%%/RNS/Cryptography/HMAC.py %%PYTHON_SITELIBDIR%%/RNS/Cryptography/Hashes.py %%PYTHON_SITELIBDIR%%/RNS/Cryptography/PKCS7.py %%PYTHON_SITELIBDIR%%/RNS/Cryptography/Provider.py %%PYTHON_SITELIBDIR%%/RNS/Cryptography/Proxies.py %%PYTHON_SITELIBDIR%%/RNS/Cryptography/SHA256.py %%PYTHON_SITELIBDIR%%/RNS/Cryptography/SHA512.py %%PYTHON_SITELIBDIR%%/RNS/Cryptography/X25519.py %%PYTHON_SITELIBDIR%%/RNS/Cryptography/__init__.py %%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/AES%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/AES%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/Ed25519%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/Ed25519%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/Fernet%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/Fernet%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/HKDF%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/HKDF%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/HMAC%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/HMAC%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/Hashes%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/Hashes%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/PKCS7%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/PKCS7%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/Provider%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/Provider%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/Proxies%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/Proxies%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/SHA256%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/SHA256%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/SHA512%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/SHA512%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/X25519%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/X25519%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/aes/__init__.py %%PYTHON_SITELIBDIR%%/RNS/Cryptography/aes/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/aes/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/aes/__pycache__/aes%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/aes/__pycache__/aes%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/aes/__pycache__/utils%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/aes/__pycache__/utils%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/aes/aes.py %%PYTHON_SITELIBDIR%%/RNS/Cryptography/aes/utils.py %%PYTHON_SITELIBDIR%%/RNS/Cryptography/pure25519/__init__.py %%PYTHON_SITELIBDIR%%/RNS/Cryptography/pure25519/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/pure25519/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/pure25519/__pycache__/_ed25519%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/pure25519/__pycache__/_ed25519%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/pure25519/__pycache__/basic%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/pure25519/__pycache__/basic%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/pure25519/__pycache__/ed25519_oop%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/pure25519/__pycache__/ed25519_oop%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/pure25519/__pycache__/eddsa%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/pure25519/__pycache__/eddsa%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Cryptography/pure25519/_ed25519.py %%PYTHON_SITELIBDIR%%/RNS/Cryptography/pure25519/basic.py %%PYTHON_SITELIBDIR%%/RNS/Cryptography/pure25519/ed25519_oop.py %%PYTHON_SITELIBDIR%%/RNS/Cryptography/pure25519/eddsa.py %%PYTHON_SITELIBDIR%%/RNS/Destination.py %%PYTHON_SITELIBDIR%%/RNS/Identity.py %%PYTHON_SITELIBDIR%%/RNS/Interfaces/AX25KISSInterface.py %%PYTHON_SITELIBDIR%%/RNS/Interfaces/Android/KISSInterface.py %%PYTHON_SITELIBDIR%%/RNS/Interfaces/Android/RNodeInterface.py %%PYTHON_SITELIBDIR%%/RNS/Interfaces/Android/SerialInterface.py %%PYTHON_SITELIBDIR%%/RNS/Interfaces/Android/__init__.py %%PYTHON_SITELIBDIR%%/RNS/Interfaces/Android/__pycache__/KISSInterface%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Interfaces/Android/__pycache__/KISSInterface%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Interfaces/Android/__pycache__/RNodeInterface%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Interfaces/Android/__pycache__/RNodeInterface%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Interfaces/Android/__pycache__/SerialInterface%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Interfaces/Android/__pycache__/SerialInterface%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Interfaces/Android/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Interfaces/Android/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Interfaces/AutoInterface.py %%PYTHON_SITELIBDIR%%/RNS/Interfaces/I2PInterface.py %%PYTHON_SITELIBDIR%%/RNS/Interfaces/Interface.py %%PYTHON_SITELIBDIR%%/RNS/Interfaces/KISSInterface.py %%PYTHON_SITELIBDIR%%/RNS/Interfaces/LocalInterface.py %%PYTHON_SITELIBDIR%%/RNS/Interfaces/PipeInterface.py %%PYTHON_SITELIBDIR%%/RNS/Interfaces/RNodeInterface.py %%PYTHON_SITELIBDIR%%/RNS/Interfaces/SerialInterface.py %%PYTHON_SITELIBDIR%%/RNS/Interfaces/TCPInterface.py %%PYTHON_SITELIBDIR%%/RNS/Interfaces/UDPInterface.py %%PYTHON_SITELIBDIR%%/RNS/Interfaces/__init__.py %%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/AX25KISSInterface%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/AX25KISSInterface%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/AutoInterface%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/AutoInterface%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/I2PInterface%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/I2PInterface%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/Interface%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/Interface%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/KISSInterface%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/KISSInterface%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/LocalInterface%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/LocalInterface%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/PipeInterface%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/PipeInterface%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/RNodeInterface%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/RNodeInterface%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/SerialInterface%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/SerialInterface%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/TCPInterface%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/TCPInterface%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/UDPInterface%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/UDPInterface%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Interfaces/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Link.py %%PYTHON_SITELIBDIR%%/RNS/Packet.py +%%PYTHON_SITELIBDIR%%/RNS/Resolver.py %%PYTHON_SITELIBDIR%%/RNS/Resource.py %%PYTHON_SITELIBDIR%%/RNS/Reticulum.py %%PYTHON_SITELIBDIR%%/RNS/Transport.py %%PYTHON_SITELIBDIR%%/RNS/Utilities/__init__.py %%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rncp%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rncp%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rnid%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rnid%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rnir%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rnir%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rnodeconf%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rnodeconf%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rnpath%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rnpath%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rnprobe%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rnprobe%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rnsd%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rnsd%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rnstatus%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rnstatus%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rnx%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/Utilities/__pycache__/rnx%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/Utilities/rncp.py %%PYTHON_SITELIBDIR%%/RNS/Utilities/rnid.py +%%PYTHON_SITELIBDIR%%/RNS/Utilities/rnir.py %%PYTHON_SITELIBDIR%%/RNS/Utilities/rnodeconf.py %%PYTHON_SITELIBDIR%%/RNS/Utilities/rnpath.py %%PYTHON_SITELIBDIR%%/RNS/Utilities/rnprobe.py %%PYTHON_SITELIBDIR%%/RNS/Utilities/rnsd.py %%PYTHON_SITELIBDIR%%/RNS/Utilities/rnstatus.py %%PYTHON_SITELIBDIR%%/RNS/Utilities/rnx.py %%PYTHON_SITELIBDIR%%/RNS/__init__.py %%PYTHON_SITELIBDIR%%/RNS/__pycache__/Buffer%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/__pycache__/Buffer%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/__pycache__/Channel%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/__pycache__/Channel%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/__pycache__/Destination%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/__pycache__/Destination%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/__pycache__/Identity%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/__pycache__/Identity%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/__pycache__/Link%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/__pycache__/Link%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/__pycache__/Packet%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/__pycache__/Packet%%PYTHON_EXT_SUFFIX%%.pyc +%%PYTHON_SITELIBDIR%%/RNS/__pycache__/Resolver%%PYTHON_EXT_SUFFIX%%.opt-1.pyc +%%PYTHON_SITELIBDIR%%/RNS/__pycache__/Resolver%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/__pycache__/Resource%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/__pycache__/Resource%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/__pycache__/Reticulum%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/__pycache__/Reticulum%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/__pycache__/Transport%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/__pycache__/Transport%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/__pycache__/_version%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/__pycache__/_version%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/_version.py %%PYTHON_SITELIBDIR%%/RNS/vendor/__init__.py %%PYTHON_SITELIBDIR%%/RNS/vendor/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/__pycache__/configobj%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/__pycache__/configobj%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/__pycache__/platformutils%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/__pycache__/platformutils%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/__pycache__/six%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/__pycache__/six%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/__pycache__/umsgpack%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/__pycache__/umsgpack%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/configobj.py %%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__init__.py %%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__pycache__/__version__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__pycache__/__version__%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__pycache__/aiosam%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__pycache__/aiosam%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__pycache__/exceptions%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__pycache__/exceptions%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__pycache__/log%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__pycache__/log%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__pycache__/sam%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__pycache__/sam%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__pycache__/tunnel%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__pycache__/tunnel%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__pycache__/utils%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__pycache__/utils%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/__version__.py %%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/aiosam.py %%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/exceptions.py %%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/log.py %%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/sam.py %%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/tunnel.py %%PYTHON_SITELIBDIR%%/RNS/vendor/i2plib/utils.py %%PYTHON_SITELIBDIR%%/RNS/vendor/ifaddr/__init__.py %%PYTHON_SITELIBDIR%%/RNS/vendor/ifaddr/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/ifaddr/__pycache__/__init__%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/ifaddr/__pycache__/_posix%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/ifaddr/__pycache__/_posix%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/ifaddr/__pycache__/_shared%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/ifaddr/__pycache__/_shared%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/ifaddr/__pycache__/_win32%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/ifaddr/__pycache__/_win32%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/ifaddr/__pycache__/niwrapper%%PYTHON_EXT_SUFFIX%%.opt-1.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/ifaddr/__pycache__/niwrapper%%PYTHON_EXT_SUFFIX%%.pyc %%PYTHON_SITELIBDIR%%/RNS/vendor/ifaddr/_posix.py %%PYTHON_SITELIBDIR%%/RNS/vendor/ifaddr/_shared.py %%PYTHON_SITELIBDIR%%/RNS/vendor/ifaddr/_win32.py %%PYTHON_SITELIBDIR%%/RNS/vendor/ifaddr/niwrapper.py %%PYTHON_SITELIBDIR%%/RNS/vendor/platformutils.py %%PYTHON_SITELIBDIR%%/RNS/vendor/six.py %%PYTHON_SITELIBDIR%%/RNS/vendor/umsgpack.py -%%PYTHON_SITELIBDIR%%/rns-0.6.2-py%%PYTHON_VER%%.egg-info/PKG-INFO -%%PYTHON_SITELIBDIR%%/rns-0.6.2-py%%PYTHON_VER%%.egg-info/SOURCES.txt -%%PYTHON_SITELIBDIR%%/rns-0.6.2-py%%PYTHON_VER%%.egg-info/dependency_links.txt -%%PYTHON_SITELIBDIR%%/rns-0.6.2-py%%PYTHON_VER%%.egg-info/entry_points.txt -%%PYTHON_SITELIBDIR%%/rns-0.6.2-py%%PYTHON_VER%%.egg-info/requires.txt -%%PYTHON_SITELIBDIR%%/rns-0.6.2-py%%PYTHON_VER%%.egg-info/top_level.txt +%%PYTHON_SITELIBDIR%%/rns-0.7.0-py%%PYTHON_VER%%.egg-info/PKG-INFO +%%PYTHON_SITELIBDIR%%/rns-0.7.0-py%%PYTHON_VER%%.egg-info/SOURCES.txt +%%PYTHON_SITELIBDIR%%/rns-0.7.0-py%%PYTHON_VER%%.egg-info/dependency_links.txt +%%PYTHON_SITELIBDIR%%/rns-0.7.0-py%%PYTHON_VER%%.egg-info/entry_points.txt +%%PYTHON_SITELIBDIR%%/rns-0.7.0-py%%PYTHON_VER%%.egg-info/requires.txt +%%PYTHON_SITELIBDIR%%/rns-0.7.0-py%%PYTHON_VER%%.egg-info/top_level.txt @owner %%USERS%% @group %%GROUPS%% @dir /var/db/reticulum @dir /var/log/reticulum @dir /var/run/reticulum