Anti-censorship issueshttps://gitlab.torproject.org/groups/tpo/anti-censorship/-/issues2020-06-27T13:43:15Zhttps://gitlab.torproject.org/tpo/anti-censorship/bridgedb/-/issues/10989bridgedb should use starttls for outgoing mails2020-06-27T13:43:15ZRoger Dingledinebridgedb should use starttls for outgoing mailsMatt tells me that outgoing mails from bridgedb don't attempt starttls. This is especially sad because those mails include bridge addresses, which we're trying to keep secret from a network adversary who watches bridges.tp.o's network (o...Matt tells me that outgoing mails from bridgedb don't attempt starttls. This is especially sad because those mails include bridge addresses, which we're trying to keep secret from a network adversary who watches bridges.tp.o's network (or the recipient's network).Isis LovecruftIsis Lovecrufthttps://gitlab.torproject.org/tpo/anti-censorship/bridgedb/-/issues/9380BridgeDB should use Stem for parsing descriptors2020-06-27T13:43:21ZMatthew FinkelBridgeDB should use Stem for parsing descriptorsCurrently we're lenient about how we parse descriptors, in some cases. For example, if we only need the first four values on a line, but the spec mandates there be 6 we presently do:
```
if len(items) >= 4:
nickname = items[1]
ip...Currently we're lenient about how we parse descriptors, in some cases. For example, if we only need the first four values on a line, but the spec mandates there be 6 we presently do:
```
if len(items) >= 4:
nickname = items[1]
ip = items[2].strip('[]')
orport = int(items[3])
```
We should ensure the line is well-formed before accepting the values. Something closer to:
```
if len(items) == 6:
nickname = item[1]
ip = items[2].strip('[]')
orport = int(items[3])
else:
logging.warn("Parsed malformed descriptor 'router' line. Expected 6 items, but line has %d" % len(items))
logging.debug(" Line: %s" % items)
```
(Logging sold separately. (Untested code))Isis LovecruftIsis Lovecrufthttps://gitlab.torproject.org/tpo/anti-censorship/bridgedb/-/issues/12843Bridgedb shouldn't handout bridges from .ir and .sy2022-07-09T04:22:45ZNima FatemiBridgedb shouldn't handout bridges from .ir and .syThe public network in these countries is highly censored and the average non-gov-supported/non-suspicious internet connection a user can have is capped to 128kb/s (16KB/s) by authorities in ir.
I can't think of anything these bridges ca...The public network in these countries is highly censored and the average non-gov-supported/non-suspicious internet connection a user can have is capped to 128kb/s (16KB/s) by authorities in ir.
I can't think of anything these bridges can offer to tor network and its users other than harm and unmasking attacks.
Hopefully, we'd come up with a plan to prevent malicious activity by these bridges in long-term, but for now, we should stop handing them out.Isis LovecruftIsis Lovecrufthttps://gitlab.torproject.org/tpo/anti-censorship/bridgedb/-/issues/2556BridgeDB silently ignores RUN_IN_DIR option when run with --dump-bridges2021-07-09T18:27:09ZKarsten LoesingBridgeDB silently ignores RUN_IN_DIR option when run with --dump-bridgesBridgeDB silently ignores the RUN_IN_DIR option when being run with the `--dump-bridges` option. The result is that it doesn't find its database and dumps no bridges to files. I don't know if the fix is to respect the RUN_IN_DIR option...BridgeDB silently ignores the RUN_IN_DIR option when being run with the `--dump-bridges` option. The result is that it doesn't find its database and dumps no bridges to files. I don't know if the fix is to respect the RUN_IN_DIR option, or if we should respect more config options when running with the `--dump-bridges` option.Christian FrommeChristian Frommehttps://gitlab.torproject.org/tpo/anti-censorship/bridgedb/-/issues/5258BridgeDB SMTP server settings are hardcoded2022-07-09T04:22:44ZAaron GibsonBridgeDB SMTP server settings are hardcodedSee Server.py:518
# self.smtpServer = "127.0.0.1" # XXX should make configurable
self.smtpServer = "172.22.121.1"See Server.py:518
# self.smtpServer = "127.0.0.1" # XXX should make configurable
self.smtpServer = "172.22.121.1"Aaron GibsonAaron Gibsonhttps://gitlab.torproject.org/tpo/anti-censorship/bridgedb/-/issues/12091BridgeDB still isn't checking DKIM verification results properly2020-06-27T13:43:12ZIsis LovecruftBridgeDB still isn't checking DKIM verification results properlyFrom [this commit message](https://gitweb.torproject.org/user/isis/bridgedb.git/commitdiff/4c18a4e2b89872c5731d4301665642065980086e) for [this unittest](https://gitweb.torproject.org/user/isis/bridgedb.git/blob/4c18a4e2b89872c5731d430166...From [this commit message](https://gitweb.torproject.org/user/isis/bridgedb.git/commitdiff/4c18a4e2b89872c5731d4301665642065980086e) for [this unittest](https://gitweb.torproject.org/user/isis/bridgedb.git/blob/4c18a4e2b89872c5731d4301665642065980086e:/lib/bridgedb/test/test_email_server.py#l326):
> Also, "dunno" certainly isn't a valid DKIM signature.
See the ticket description for legacy/trac#12086 for how
```
15:30:31 DEBUG L495:server.lineReceived() > X-DKIM-Authentication-Results: dunno
```
ended up in the headers on an incoming email in the first place.Isis LovecruftIsis Lovecrufthttps://gitlab.torproject.org/tpo/anti-censorship/bridgedb/-/issues/2071BridgeDB stuck at 500 bridges2021-07-09T18:27:09ZMike PerryBridgeDB stuck at 500 bridgesWhy is 500 the magic number for max bridges we have ever seen?
https://metrics.torproject.org/network.html?graph=networksize&start=2009-01-01&end=2010-10-12#networksize
Is there some bug that is preventing us from getting more relays? ...Why is 500 the magic number for max bridges we have ever seen?
https://metrics.torproject.org/network.html?graph=networksize&start=2009-01-01&end=2010-10-12#networksize
Is there some bug that is preventing us from getting more relays? Or is this just a reporting issue?
We could try to ask people to run 100 bridges on the mechanical turk to see if it changes:
https://www.mturk.com/mturk/preview?groupId=VZ2CYWR61R3MWRXH8S00
Verification of the job would be to provide a working, usable bridge line.Mike PerryMike Perryhttps://gitlab.torproject.org/tpo/anti-censorship/bridgedb/-/issues/5121bridgedb traceback: Database instance has no attribute 'cleanWarnedBridges'2022-07-09T04:22:44ZRoger Dingledinebridgedb traceback: Database instance has no attribute 'cleanWarnedBridges'```
Unhandled error in Deferred:
Traceback (most recent call last):
File "/usr/lib/python2.6/dist-packages/twisted/internet/base.py", line 1165, in run
self.mainLoop()
File "/usr/lib/python2.6/dist-packages/twisted/internet/base....```
Unhandled error in Deferred:
Traceback (most recent call last):
File "/usr/lib/python2.6/dist-packages/twisted/internet/base.py", line 1165, in run
self.mainLoop()
File "/usr/lib/python2.6/dist-packages/twisted/internet/base.py", line 1174, in mainLoop
self.runUntilCurrent()
File "/usr/lib/python2.6/dist-packages/twisted/internet/base.py", line 796, in runUntilCurrent
call.func(*call.args, **call.kw)
File "/usr/lib/python2.6/dist-packages/twisted/internet/task.py", line 194, in __call__
d = defer.maybeDeferred(self.f, *self.a, **self.kw)
--- <exception caught here> ---
File "/usr/lib/python2.6/dist-packages/twisted/internet/defer.py", line 125, in maybeDeferred
result = f(*args, **kw)
File "/home/bridges/lib/python2.6/site-packages/bridgedb/Dist.py", line 299, in cleanDatabase
db.cleanWarnedBridges(time.time()-MAX_EMAIL_RATE)
exceptions.AttributeError: Database instance has no attribute 'cleanWarnedBridges'
```Aaron GibsonAaron Gibsonhttps://gitlab.torproject.org/tpo/anti-censorship/bridgedb/-/issues/4056bridgedb tracebacks2022-07-09T04:22:44ZRoger Dingledinebridgedb tracebacks```
Traceback (most recent call last):
File "/usr/lib/python2.6/runpy.py", line 122, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib/python2.6/runpy.py", line 34, in _run_code
exec code in run_globa...```
Traceback (most recent call last):
File "/usr/lib/python2.6/runpy.py", line 122, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib/python2.6/runpy.py", line 34, in _run_code
exec code in run_globals
File "/home/bridges/lib/python2.6/site-packages/TorBridgeDB.py", line 4, in <module>
bridgedb.Main.run()
File "/home/bridges/lib/python2.6/site-packages/bridgedb/Main.py", line 381, in run
startup(configuration)
File "/home/bridges/lib/python2.6/site-packages/bridgedb/Main.py", line 339, in startup
Server.addWebServer(cfg, ipDistributor, webSchedule)
File "/home/bridges/lib/python2.6/site-packages/bridgedb/Server.py", line 268, in addWebServer
useRecaptcha=cfg.RECAPTCHA_ENABLED,
AttributeError: Conf instance has no attribute 'RECAPTCHA_ENABLED'
```
running 054560d33d74e7 with no new lines added to my config file. The fix presumably is to check if the config line is present before trying to access it. (Once I added the config line I didn't get the traceback.)
```
Traceback (most recent call last):
File "/usr/lib/python2.6/dist-packages/twisted/internet/base.py", line 1165, in run
self.mainLoop()
File "/usr/lib/python2.6/dist-packages/twisted/internet/base.py", line 1174, in mainLoop
self.runUntilCurrent()
File "/usr/lib/python2.6/dist-packages/twisted/internet/base.py", line 796, in runUntilCurrent
call.func(*call.args, **call.kw)
File "/usr/lib/python2.6/dist-packages/twisted/internet/task.py", line 194, in __call__
d = defer.maybeDeferred(self.f, *self.a, **self.kw)
--- <exception caught here> ---
File "/usr/lib/python2.6/dist-packages/twisted/internet/defer.py", line 125, in maybeDeferred
result = f(*args, **kw)
File "/home/bridges/lib/python2.6/site-packages/bridgedb/Dist.py", line 299, in cleanDatabase
db.cleanWarnedBridges(time.time()-MAX_EMAIL_RATE)
exceptions.AttributeError: Database instance has no attribute 'cleanWarnedBridges'
```
Looks like we meant to say cleanWarnedEmails?Aaron GibsonAaron Gibsonhttps://gitlab.torproject.org/tpo/anti-censorship/bridgedb/-/issues/4087bridgedb translation text for blocked bridges is wrong2022-07-09T04:22:45ZAaron Gibsonbridgedb translation text for blocked bridges is wrongthe wrong string is selected for bridges that 'might be blocked'the wrong string is selected for bridges that 'might be blocked'https://gitlab.torproject.org/tpo/anti-censorship/bridgedb/-/issues/27984bridgedb verifyHostname doesn't check subjectAltName extension2021-07-09T18:27:09ZTracbridgedb verifyHostname doesn't check subjectAltName extensionCurrently, bridgedb/crypto.py function verifyHostname uses the certificate's commonName exclusively to perform a hostname match.
RFC 5280 demands that the presence of the subjectAltName (SAN) extension is checked, and if present, must b...Currently, bridgedb/crypto.py function verifyHostname uses the certificate's commonName exclusively to perform a hostname match.
RFC 5280 demands that the presence of the subjectAltName (SAN) extension is checked, and if present, must be used to perform the hostname check.
verifyHostname should be changed to use subjectAltName. Only fall back to check common name if SAN is missing.
If an existing, more complete implementation of hostname verification can be found, it might be preferable to use it.
**Trac**:
**Username**: kaieArmin HuremagicArmin Huremagichttps://gitlab.torproject.org/tpo/anti-censorship/bridgedb/-/issues/2280BridgeDB web page does not mention that bridge-request mails cannot be sent f...2021-07-09T18:27:09ZRobert RansomBridgeDB web page does not mention that bridge-request mails cannot be sent from yahoo.cnCurrently, https://bridges.torproject.org/ says that bridge request e-mails must be sent ‘from a gmail or yahoo account’. According to the `bridgedb.conf` file in BridgeDB Git HEAD, BridgeDB will only accept e-mail bridge requests from ...Currently, https://bridges.torproject.org/ says that bridge request e-mails must be sent ‘from a gmail or yahoo account’. According to the `bridgedb.conf` file in BridgeDB Git HEAD, BridgeDB will only accept e-mail bridge requests from `gmail.com` or `yahoo.com`; it rejects requests from `yahoo.cn`, for example, even though such addresses are attached to Yahoo Mail accounts.
The web page should be changed to specify exactly which e-mail addresses can be used to request bridge addresses. If possible, this part of the web page should be automatically generated based on the current configuration.https://gitlab.torproject.org/tpo/anti-censorship/bridgedb/-/issues/19839BridgeDB website: In firefox page shows titles in English and text in the lan...2021-07-01T17:47:15ZTracBridgeDB website: In firefox page shows titles in English and text in the language preferred by the userBrowsing to https://bridges.torproject.org/ from Germany using an English Firefox, I am served a page that shows headlines in English, but the rest (as far as I checked) is in German. The German text is not bad but should be improved in ...Browsing to https://bridges.torproject.org/ from Germany using an English Firefox, I am served a page that shows headlines in English, but the rest (as far as I checked) is in German. The German text is not bad but should be improved in some places as it seems too close to the English original with some incorrect translation choices. As a native speaker and also long-standing translator/interpreter for Digitalcourage and the CCC I’d be happy to help. (And since this ticket will apparently be “owned” by Isis, I’d like to add that I’m hugely looking forward to being her interpreter for her upcoming talk at Digitalcourage’s “Public Domain” event. ☺)
**Trac**:
**Username**: sebalistraumschuletraumschulehttps://gitlab.torproject.org/tpo/anti-censorship/bridgedb/-/issues/9404BridgeDB will sometimes return no obfs2 or obfs3 bridges over html2020-06-27T13:43:21ZMatt PaganBridgeDB will sometimes return no obfs2 or obfs3 bridges over htmlI am unable to reproduce this with any regularity, but I have seen it happen twice now. Sometimes when you visit https://bridges.torproject.org/bridges you will only recieve standard bridges and no obfs2 or obfs3 bridges. This is especia...I am unable to reproduce this with any regularity, but I have seen it happen twice now. Sometimes when you visit https://bridges.torproject.org/bridges you will only recieve standard bridges and no obfs2 or obfs3 bridges. This is especially problematic if you are coming from a fixed IP address (e.g. not tor) and need an obfsproxy transport, since you will then have to wait some length of time until your new request for bridges will get you a new set of bridges.Isis LovecruftIsis Lovecrufthttps://gitlab.torproject.org/tpo/anti-censorship/bridgedb/-/issues/26023BridgeDB won't start due to Stem throwing a ValueError on a weird ed25519 cert2020-06-27T13:42:53ZIsis LovecruftBridgeDB won't start due to Stem throwing a ValueError on a weird ed25519 cert```
Traceback (most recent call last):
File "/home/bridgedb/virtualenvs/bridgedb/bin/bridgedb", line 4, in <module>
__import__('pkg_resources').run_script('bridgedb==0.6.4+0.g4faecd5.dirty', 'bridgedb')
File "/home/bridgedb/virtu...```
Traceback (most recent call last):
File "/home/bridgedb/virtualenvs/bridgedb/bin/bridgedb", line 4, in <module>
__import__('pkg_resources').run_script('bridgedb==0.6.4+0.g4faecd5.dirty', 'bridgedb')
File "/home/bridgedb/virtualenvs/bridgedb/lib/python2.7/site-packages/pkg_resources/__init__.py", line 696, in run_script
self.require(requires)[0].run_script(script_name, ns)
File "/home/bridgedb/virtualenvs/bridgedb/lib/python2.7/site-packages/pkg_resources/__init__.py", line 1614, in run_script
exec(code, namespace, namespace)
File "/srv/bridges.torproject.org/home/virtualenvs/bridgedb/lib/python2.7/site-packages/bridgedb-0.6.4+0.g4faecd5.dirty-py2.7.egg/EGG-INFO/scripts/bridgedb", line 31, in <module>
run(option)
File "/home/bridgedb/virtualenvs/bridgedb/local/lib/python2.7/site-packages/bridgedb-0.6.4+0.g4faecd5.dirty-py2.7.egg/bridgedb/main.py", line 458, in run
emailDistributor, ipDistributor, moatDistributor = reload(False)
File "/home/bridgedb/virtualenvs/bridgedb/local/lib/python2.7/site-packages/bridgedb-0.6.4+0.g4faecd5.dirty-py2.7.egg/bridgedb/main.py", line 414, in reload
load(state, hashring, clear=False)
File "/home/bridgedb/virtualenvs/bridgedb/local/lib/python2.7/site-packages/bridgedb-0.6.4+0.g4faecd5.dirty-py2.7.egg/bridgedb/main.py", line 128, in load
serverdescriptors = descriptors.parseServerDescriptorsFile(fn)
File "/home/bridgedb/virtualenvs/bridgedb/local/lib/python2.7/site-packages/bridgedb-0.6.4+0.g4faecd5.dirty-py2.7.egg/bridgedb/parse/descriptors.py", line 164, in parseServerDescriptorsFile
routers = list(document)
File "/home/bridgedb/virtualenvs/bridgedb/lib/python2.7/site-packages/stem/descriptor/__init__.py", line 199, in parse_file
for desc in handler(descriptor_file, descriptor_type, validate, document_handler, **kwargs):
File "/home/bridgedb/virtualenvs/bridgedb/lib/python2.7/site-packages/stem/descriptor/__init__.py", line 265, in _parse_file_for_path
for desc in parse_file(desc_file, *args, **kwargs):
File "/home/bridgedb/virtualenvs/bridgedb/lib/python2.7/site-packages/stem/descriptor/__init__.py", line 256, in parse_file
for desc in parse(descriptor_file):
File "/home/bridgedb/virtualenvs/bridgedb/lib/python2.7/site-packages/stem/descriptor/__init__.py", line 303, in _parse_metrics_file
for desc in stem.descriptor.server_descriptor._parse_file(descriptor_file, is_bridge = False, validate = validate, **kwargs):
File "/home/bridgedb/virtualenvs/bridgedb/lib/python2.7/site-packages/stem/descriptor/server_descriptor.py", line 221, in _parse_file
yield RelayDescriptor(descriptor_text, validate, annotations, **kwargs)
File "/home/bridgedb/virtualenvs/bridgedb/lib/python2.7/site-packages/stem/descriptor/server_descriptor.py", line 817, in __init__
super(RelayDescriptor, self).__init__(raw_contents, validate, annotations)
File "/home/bridgedb/virtualenvs/bridgedb/lib/python2.7/site-packages/stem/descriptor/server_descriptor.py", line 637, in __init__
self._parse(entries, validate)
File "/home/bridgedb/virtualenvs/bridgedb/lib/python2.7/site-packages/stem/descriptor/__init__.py", line 678, in _parse
parser_for_line[keyword](self, entries)
File "/home/bridgedb/virtualenvs/bridgedb/lib/python2.7/site-packages/stem/descriptor/server_descriptor.py", line 439, in _parse_identity_ed25519_line
descriptor.certificate = stem.descriptor.certificate.Ed25519Certificate.parse(''.join(cert_lines[1:-1]))
File "/home/bridgedb/virtualenvs/bridgedb/lib/python2.7/site-packages/stem/descriptor/certificate.py", line 125, in parse
return Ed25519CertificateV1(version, content, decoded)
File "/home/bridgedb/virtualenvs/bridgedb/lib/python2.7/site-packages/stem/descriptor/certificate.py", line 165, in __init__
self.expiration = datetime.datetime.utcfromtimestamp(stem.util.str_tools._to_int(decoded[2:6]) * 3600)
ValueError: year is out of range
```Isis LovecruftIsis Lovecrufthttps://gitlab.torproject.org/tpo/anti-censorship/bridgedb/-/issues/10559BridgeDB writes `keyid=` before fingerprints2020-06-27T13:43:18ZIsis LovecruftBridgeDB writes `keyid=` before fingerprintsWhile testing for legacy/trac#9499, I realised that if I request https://127.0.0.1:6789/bridges?transport=obfs3 (localhost because it's a local test instance) then BridgeDB hands back bridge lines like this:
```
obfs3 245.102.100.252:236...While testing for legacy/trac#9499, I realised that if I request https://127.0.0.1:6789/bridges?transport=obfs3 (localhost because it's a local test instance) then BridgeDB hands back bridge lines like this:
```
obfs3 245.102.100.252:23619 keyid=59ca743e89b508e16b8c7c6d2290efdfd14eea98
```
which is wrong and will need to be fixed before we hand out fingerprints. This should be easy, just figure out where this string is getting added and kill it with fire.Isis LovecruftIsis Lovecrufthttps://gitlab.torproject.org/tpo/anti-censorship/bridgedb/-/issues/10811BridgeDB's assignments.log files are not being updated2020-06-27T13:43:16ZIsis LovecruftBridgeDB's assignments.log files are not being updatedKarsten reported this on IRC. It might be due to a change in the `bridgedb-admin` scripts, or a change in BridgeDB.Karsten reported this on IRC. It might be due to a change in the `bridgedb-admin` scripts, or a change in BridgeDB.Isis LovecruftIsis Lovecrufthttps://gitlab.torproject.org/tpo/anti-censorship/bridgedb/-/issues/13123BridgeDB's bridge lines shouldn't start with two spaces2020-06-27T13:43:07ZKarsten LoesingBridgeDB's bridge lines shouldn't start with two spacesWhen I ask BridgeDB for bridges, it gives me a gray box with three bridge lines in it, but each line starts with two spaces. If I want to paste those lines somewhere I either need to remove those spaces or hope that the application trim...When I ask BridgeDB for bridges, it gives me a gray box with three bridge lines in it, but each line starts with two spaces. If I want to paste those lines somewhere I either need to remove those spaces or hope that the application trims them. Can the two spaces be removed and replaced by some CSS magic to increase indentation?Isis LovecruftIsis Lovecrufthttps://gitlab.torproject.org/tpo/anti-censorship/bridgedb/-/issues/15464BridgeDB's continuous integration setup steps should be separate scripts2020-06-27T13:43:06ZIsis LovecruftBridgeDB's continuous integration setup steps should be separate scripts…or Makefile directives.
weasel requested this at the Valencia developer meeting, in order to make it easier to get BridgeDB's test builds running on Jenkins (if we should ever wish to do so).
Currently, BridgeDB's CI uses Travis. The...…or Makefile directives.
weasel requested this at the Valencia developer meeting, in order to make it easier to get BridgeDB's test builds running on Jenkins (if we should ever wish to do so).
Currently, BridgeDB's CI uses Travis. The builds can be viewed [here](https://travis-ci.org/isislovecruft/bridgedb/builds). The script which controls the setup and testing procedure for these builds is BridgeDB's [.travis.yml file](https://gitweb.torproject.org/bridgedb.git/tree/.travis.yml?h=develop), which is basically a lot like Tor Browser's gitian descriptors, it's YAML with one command per line, organised into various sections (which in this case, are called in the order they happen to be in in the .travis.yml file). So pretty simple to convert.Isis LovecruftIsis Lovecrufthttps://gitlab.torproject.org/tpo/anti-censorship/bridgedb/-/issues/33709BridgeDB's deployment scripts are broken2020-10-29T20:26:03ZPhilipp Winterphw@torproject.orgBridgeDB's deployment scripts are brokenWhen running `~/bridgedb-admin/bin/deploy` on polyanthum, I suddenly get:
```
[...]
"$BIN_DIR"/run-bridgedb
+ /srv/bridges.torproject.org/bin/run-bridgedb
Starting BridgeDB... [OK]
exit $?
+ exit 0
(bridgedb) [21:23:16] bridg...When running `~/bridgedb-admin/bin/deploy` on polyanthum, I suddenly get:
```
[...]
"$BIN_DIR"/run-bridgedb
+ /srv/bridges.torproject.org/bin/run-bridgedb
Starting BridgeDB... [OK]
exit $?
+ exit 0
(bridgedb) [21:23:16] bridgedb@polyanthum ~$ Traceback (most recent call last):
File "/home/bridgedb/virtualenvs/bridgedb/bin/bridgedb", line 4, in <module>
__import__('pkg_resources').run_script('bridgedb==0.9.4+0.g9a7ae57c.dirty', 'bridgedb')
File "/home/bridgedb/virtualenvs/bridgedb/lib/python3.7/site-packages/pkg_resources/__init__.py", line 667, in run_script
self.require(requires)[0].run_script(script_name, ns)
File "/home/bridgedb/virtualenvs/bridgedb/lib/python3.7/site-packages/pkg_resources/__init__.py", line 1455, in run_script
.format(**locals()),
pkg_resources.ResolutionError: Script 'scripts/bridgedb' not found in metadata at '/srv/bridges.torproject.org/home/bridgedb/bridgedb.egg-info'
```
...and BridgeDB won't start. This may have something to do with the `setuptools` package.Philipp Winterphw@torproject.orgPhilipp Winterphw@torproject.org