1 Changes in version 0.9.4 - 2020-02-19
3 * FIXES https://bugs.torproject.org/30946
4 This patch ports BridgeDB to Python 3. Python 2 is no longer supported
7 Changes in version 0.9.3 - 2020-02-18
9 * FIXES <https://bugs.torproject.org/33299>
10 This patch disables the distribution of FTE, ScrambleSuit, and obfs3.
12 Changes in version 0.9.2 - 2020-02-04
14 * FIXES <https://bugs.torproject.org/31427>
15 This patch updates the AUTHORS file, HACKING.md, contact information,
16 the Trac URL to report bugs, our instructions on BridgeDB's landing
17 page, and it fixes a small bug in descriptor generation.
19 Changes in version 0.9.1 - 2019-10-29
21 * FIXES https://bugs.torproject.org/32203
22 The metrics code used to weed out vanilla bridges, so they did not show
23 up in our metrics. This patch fixes this issue.
25 * FIXES https://bugs.torproject.org/32134
26 While implementing our language switcher (#26543), we added a new
27 string, "Language", that requires translations. This patch adds a new
28 translation request and also updates our instructions on how to request
31 * FIXES https://bugs.torproject.org/32105
32 Mention an undocumented OS-level dependency: python3-dkim.
34 Changes in version 0.9.0 - 2019-10-16
36 * FIXES https://bugs.torproject.org/26543
37 Implement a language switcher that allows users to override the locale
38 that BridgeDB automatically selects by inspecting the client's request
41 Changes in version 0.8.3 - 2019-10-03
43 * FIXES https://bugs.torproject.org/31903
44 Update existing translations and request new translations. Thanks to
45 all volunteers who helped translate BridgeDB!
47 * FIXES https://bugs.torproject.org/31780
48 We implemented BridgeDB's metrics in #9316 but haven't specified its
49 format until now. In addition to adding a specification, this patch
50 also makes our implementation consistent with our (slightly updated)
53 * FIXES https://bugs.torproject.org/29484
54 Update BridgeDB's requirements to the latest respective versions. Among
55 others, this patch set updates Twisted to 19.7.0, pyOpenSSL to 19.0.0,
56 and replaces (the abandoned) PyCrypto with PyCryptodome, which fixes
57 security vulnerabilities.
59 Changes in version 0.8.2 - 2019-09-20
61 Updated translations for the following languages:
62 bn, da, eo, fa, it, ko, nl, pt_BR, pt_PT, sr, zh_CN.
64 Changes in version 0.8.1 - 2019-09-11
66 * FIXES https://bugs.torproject.org/17626
67 BridgeDB gets confused when users reply to a "get help" email. The
68 issue is that BridgeDB interprets commands anywhere in the email body,
69 even if it's in quoted text. To fix this issue, we are ignoring
70 commands whose email body line starts with a '>' character, which is
71 typically used for email quotes.
73 * FIXES https://bugs.torproject.org/28533
74 The frontdesk is seeing plenty of empty bogus emails. This fix removes
75 the email links and instead encourages users to take a look at the Tor
76 Browser Manual and at our Support Portal.
78 Changes in version 0.8.0 - 2019-08-20
80 * FIXES https://bugs.torproject.org/9316
81 Make BridgeDB export usage metrics every 24 hours. At the end of each
82 24-hour measurement interval, BridgeDB will append usage metrics to the
83 file METRICS_FILE, which is configured in bridgedb.conf. Our metrics
84 keep track of the number of (un)successful requests per transport type
85 per country code (or email provider) per distribution method. This way,
86 we get to learn that, say, over the last 24 hours there were 31-40 users
87 in Iran who successfully requested an obfs4 bridge over Moat.
89 * FIXES #26542 https://bugs.torproject.org/26542
90 Make BridgeDB distribute vanilla IPv6 bridges again.
92 * FIXES #22755 https://bugs.torproject.org/22755
93 Use stem instead of leekspin to create test descriptors. We now don't
94 need to depend on leekspin anymore.
96 * FIXES #31252 https://bugs.torproject.org/31252
97 Add an anti-bot mechanism that allows us to detect bots by matching
98 HTTP request headers for blacklisted patterns. For example, bots may
99 have their Accept-Language set to "Klingon". Blacklisted patterns are
100 configured in BLACKLISTED_REQUEST_HEADERS_FILE. When BridgeDB detects
101 a bot request, we can answer their request with a decoy bridge that's
102 only handed out to bots. Decoy bridges are configured in
105 Changes in version 0.7.1 - 2019-06-07
107 * FIXES #28496 https://bugs.torproject.org/28496
108 Remove Yahoo from the list of allowed email domains. Yahoo allows you
109 to create up to 500 disposable email addresses, which BridgeDB
110 interprets as unique:
111 https://bugs.torproject.org/28496#comment:8
112 We could address this issue in BridgeDB but at this point we seem better
113 off dropping support for Yahoo because the provider likely also fell
114 behind in Sybil protection.
116 Changes in version 0.7.0 - 2019-06-07
118 * FIXES #28655 https://bugs.torproject.org/28655
119 When a bridge supports an active probing-resistant transport, it should
120 not give out flavors that are vulnerable to active probing. For
121 example, if a bridge supports obfs4 and obfs3, it should only give out
124 * FIXES #30706 https://bugs.torproject.org/30706
125 Do some simple BridgeDB housekeeping: Add missing CHANGELOG entries, add
126 Philipp's contact info to the support section, fix a broken Trac URL,
127 and turn HTTP link into HTTPS.
129 * FIXES #30157: https://bugs.torproject.org/30157
130 Update BridgeDB translations. This ticket both adds new translations
131 and updates existing ones.
133 Changes in version 0.6.9 - 2018-11-20
135 * FIXES #23894 https://bugs.torproject.org/23894
136 Really change the contact address, in the correct place this time.
138 Changes in version 0.6.8 - 2018-11-19
140 * FIXES #28528 https://bugs.torproject.org/28528
141 Change maintainer info.
143 * FIXES #23894 https://bugs.torproject.org/23894
144 Change contact email address.
146 Changes in version 0.6.7 - 2018-05-21
148 Print fingerprints in hex thank you very much.
150 Changes in version 0.6.6 - 2018-05-21
152 * FIXES #26150 https://bugs.torproject.org/26150
153 Hotfix for strange bridges missing address fields.
155 Changes in version 0.6.5 - 2018-05-04
157 * FIXES #26023 https://bugs.torproject.org/26023
158 There's few bridges whose ed25519 certificates contain the year 491869,
159 which the datetime module (called from Stem) believes "out of range". So
160 instead we'll parse the descriptors one at a time and catch the errors
163 * FIXES #25246 https://bugs.torproject.org/25246
164 Add script for assigning unallocated bridges to another distributor.
166 Changes in version 0.6.4 - 2018-02-13
168 * FIXES #24432 https://bugs.torproject.org/24432
169 Add config option to skip loopback addresses in X-Forwarded-For parsing.
171 Changes in version 0.6.3 - 2018-01-23
173 * FIXES #24432 https://bugs.torproject.org/24432
174 The production moat server had issues related to redirecting to
175 resources properly, which are now fixed.
177 * FIXES #24701 https://bugs.torproject.org/24701
178 Adds a special surprise for the special someone who has been
179 automatedly requesting bridges not through driving a browser, but
180 through a script which is so thoroughly stupid that it doesn't
181 even send the URL parameters for the CAPTCHA challenge and solution.
182 Their script will now be delayed for quite some time and then
183 rickrolled. Mess with the best, die like the rest.
185 * FIXES #24704 https://bugs.torproject.org/24704
186 Bridges returned to a single request are now filtered such that
187 there will never be two bridges from the same IPv4 /16 or IPv6 /64.
189 And includes the following general changes:
191 * ADDS unittests for the legacy code in bridgedb/Bridges.py,
192 bringing the total test coverage above 90% for the first time.
195 Changes in version 0.6.2 - 2017-12-20
197 * FIXES #24636 https://bugs.torproject.org/24636
198 The moat API specification included an extra response type which
199 could be sent if there was no overlap between transports the
200 client supported and those which the server supported. This has
201 been removed from the specification, which now describes the
202 behaviour moat has always exhibited: if there is no overlap, the
203 server responds with a CAPTCHA image response which includes the
204 list of transports it does support.
206 * FIXES #24637 https://bugs.torproject.org/24637
207 The moat server did not respond correctly with the specified JSON
208 API error type when there were no bridges available. It now
209 responds correctly with a 404 error whose details describe why the
210 request could not be fulfilled. The moat server also now logs
211 messages if there were not the configured
212 MOAT_BRIDGES_PER_RESPONSE number of bridges available.
215 Changes in version 0.6.1 - 2017-12-13
217 * ADDS a shell script, scripts/test-moat, for testing either a
218 locally-running moat server, or a remote one through a meek
220 Thanks to David Fifield for his work on meek, assistance setting
221 it up, and providing the first version of this script.
223 * FIXES #24433 https://bugs.torproject.org/24433
224 The test-moat script wasn't sending an X-Forwarded-For header,
225 which triggered a bug in the moat server, since the CAPTCHA
226 solution includes an HMAC based on the client's IP (forwarded
227 through all the several layers of tunnels/proxies).
229 * FIXES #24443 https://bugs.torproject.org/24443
230 Due to a difference between how booleans are parsed by Python's
231 json library and normal Python booleans, the moat server was
232 generating and returning QRCodes… regardless of whether the remote
233 client application asked for one. This is now fixed.
235 * FIXES #24460 https://bugs.torproject.org/24460
236 There was an unhandled error when sending certain (what appears to
237 be possibly malicious? but in a very strange way) requests to
238 BridgeDB's HTTPS distributor. The robots making the requests were
239 attempting to request bridges, but were presenting a CAPTCHA
240 solution without the correct HTML form field parameters present,
241 which isn't possible through normal usage of the web interface.
242 Whoever or whatever is doing this is now going to be endlessly
243 redirected so that they may forever spiral in their own private
244 internet hell. I reserve the right come up with a worse fate for
245 them later, should I get bored.
247 * FIXES #3015 https://bugs.torproject.org/3015
248 BridgeDB has had a partially-implemented concept of "buckets"
249 since the age of the dinosaurs: write some of the unallocated
250 bridges to a file which should (somehow) be manually distributed.
251 In addition to be unused and untested, there were several issues
252 with the buckets, the most significant of which were the inability
253 to request pluggable transports in a bucket and the fact that
254 buckets were not persistent in any way (e.g. if i request a bucket
255 of 50 bridges for Gomez and another with 50 for Morticia, they
256 might end up with some of the same bridges, further, tomorrow
257 they'll end up with 50 possibly different bridges than those they
258 received today). All of this code is now removed.
260 And includes the following general changes:
262 * FIXES issues with JSON quote syntax and a mistaken JSON API
263 "type" parameter in the specification of the moat server (in the
265 Thanks to Mark Smith and Kathy Brade for pointing out the issues.
268 Changes in version 0.6.0 - 2017-11-15
270 * ADDS a new JSON API distributor called "moat", which is intended
271 for use for Tor Launcher to use to build an in-browser UI for
274 * CHANGES the organisation of code to add a new
275 bridgedb.distributors package as well as a
276 bridgedb.distributors.common package for code shared between
277 multiple distributors.
280 Changes in version 0.5.0 - 2017-10-28
282 * FIXES #23957 https://bugs.torproject.org/23957
283 BridgeDB now supports bridge operators choosing how their bridge
284 will be distributed. See the "BridgeDistribution" torrc option in
285 tor's manpage for details.
287 * FIXES #16650 https://bugs.torproject.org/16650
288 BridgeDB is now accessible via select remote user interfaces
289 through a meek tunnel.
291 * FIXES #22998 https://bugs.torproject.org/23033
292 * FIXES #23033 https://bugs.torproject.org/23033
293 * FIXES #23034 https://bugs.torproject.org/23034
294 Upgrades BridgeDB to newer versions of Twisted and PyOpenSSL, and
295 fixes several issues due to non-backwards compatible changes
296 within those libraries.
299 Changes in version 0.4.0 - 2017-01-09
301 * FIXES #21162 https://bugs.torproject.org/21162
302 BridgeDB now supports arbitrarily blacklisting suspected bad
303 bridges from being distributed to clients. This is in response
304 to a suspected sybil attack by an unknown party. For more
306 https://lists.torproject.org/pipermail/tor-project/2016-December/000851.html
309 Changes in version 0.3.8 - 2016-09-22
311 * FIXES #20088 https://bugs.torproject.org/20088
312 BridgeDB now supports receiving descriptors from multiple Bridge
313 Authorities. See also #19690.
315 * FIXES #20087 https://bugs.torproject.org/20087
316 BridgeDB's version of Stem now supports parsing transport lines in
317 bridge extrainfo descriptors which contain IPv6 addresses
318 contained within square brackets.
321 Changes in version 0.3.7 - 2016-08-04
323 * FIXES #19691 https://bugs.torproject.org
324 BridgeDB (as running on Tor Project infrastructure) is now
325 invocated with a redirection of stdout and stderr to the flog
326 utility, in order to ensure that file handles are properly closed
327 and reopened when BridgeDB receives a SIGHUP.
329 And includes the following general changes:
331 * ADDS some files which were missing from BridgeDB PyPI packages
332 to the MANIFEST.in, so that they are now included.
335 Changes in version 0.3.6 - 2016-07-28
337 * FIXES #18237 https://bugs.torproject.org/18237
338 During descriptor parsing, BridgeDB saves copies of descriptor files
339 which couldn't be parsed, for later debugging purposes. To avoid
340 filing up the runtime directory with these files, we now delete files
341 older than 24 hours, every 24 hours.
343 * FIXES #18949 https://bugs.torproject.org/18949
344 Since we've upgraded the host machine which runs The Tor Project's
345 BridgeDB instance to Debian Jessie, this patch updates the testing
346 configurations and continuous integration infrastructure to run
347 tests on versions of Python dependencies in Debian Jessie and Stretch.
350 Changes in version 0.3.4 - 0.3.5 - 2015-11-30
352 * FIXES #14685 https://bugs.torproject.org/14685
353 This disables distribution of obfs2 bridges. This pluggable
354 transport has known distiguishers which allow adversaries to
355 identify client connections to obfs2 bridges, which in turn allows
356 these connections to be blocked/censored. With numerous obfs3 and
357 obfs4 bridges both readily available, users should not be
358 presented with an easily-configurable choice that is known to be
359 unsafe for the majority of users.
361 And includes the following general changes:
363 * ADDS error pages to BridgeDB's web interface, to provide
364 friendlier explanations for downtime, missing pages, and internal
365 server errors. For example: https://bridges.torproject.org/404
368 Changes in version 0.3.3 - 2015-10-25
370 * FIXES #12029 https://bugs.torproject.org/12029
371 BridgeDB now has an API for creating Bridge Distributors.
372 See the bridgedb.distribute module, or its developer documentation
373 at https://pythonhosted.org/bridgedb/bridgedb.distribute.html.
375 * FIXES PART OF #12506 https://bugs.torproject.org/12506
376 BridgeDB's two Distributors (HTTPS and Email) are now entirely
377 modularised and self-contained within separate subdirectories in
378 the source code. This is the first step to redesigning these
379 Distributors into their own separate processes, which will allow
380 the Distributors to remain functional while BridgeDB is reparsing
383 * FIXES #15968 https://bugs.torproject.org/15968
384 BridgeDB now sends a Content-Security-Policy header which
385 explicitly allows Javascript, images, CSS, and fonts, from
386 https://bridges.torproject.org. All other types of content are
387 forbidden, including:
388 - embedding https://bridges.torproject.org within
389 <iframe>, <embed>, or <object>, and attempting to source
390 additional resources into its embedded context
391 - inline Javascript, including Javascript within SVG files
393 - externally hosted fonts
394 - inline SVG, e.g. via the HTML5 <svg> tag
395 - any and all connections made via Javascript XMLHttpRequests,
396 WebSockets, sendBeacon(), and Web Workers
399 BridgeDB's Content-Security-Policy does not yet make use of
400 certain newer, lesser supported, Content-Security-Policy v2.0
401 directives, such as "reflected-xss" and "frame-ancestors", but may
404 * FIXES #16273 https://bugs.torproject.org/16273
405 Several links to Tor Project gitweb URLs within the developer
406 documentation were outdated in that they still used the old gitweb
407 URL format. These are now updated.
408 Thanks to David Fifield for the bug report and patches.
410 * FIXES #16330 https://bugs.torproject.org/16330
411 BridgeDB can now handle bridge-server-descriptors with
412 extra-info-digest fields which have two values, as well as both
413 bridge-server-descriptors and bridge-extrainfo descriptors which
414 contain Ed25519 key material and signatures. See Tor proposals
415 #220 and #228 for more information on the changes to these
416 descriptors. Note that BridgeDB can now parse this information,
417 but does not yet make use of any Ed25519 cryptographic material
418 within bridge descriptors.
419 https://gitweb.torproject.org/torspec.git/tree/proposals/220-ecc-id-keys.txt
420 https://gitweb.torproject.org/torspec.git/tree/proposals/228-cross-certification-onionkeys.txt
421 Thanks to Atagar for patching Stem.
423 * FIXES #16616 https://bugs.torproject.org/16616
424 The HSDir flag can now be included within bridge-networkstatus
425 documents. BridgeDB now has unittests which guarantee that its
426 parsers safely ignore this flag, as well as any flags unknown to
427 BridgeDB which may appear in the future.
428 Thanks to Roger Dingledine for alerting me about the change.
430 * FIXES #16649 https://bugs.torproject.org/16649
431 Mobile users, and other users with small screen pixel ratios, will
432 find that the UI of BridgeDB's HTTPS Distributor has greatly
433 increased in usability and readability.
436 And includes the following general changes:
438 * FIXES an error when requesting the non-HTML version of the
439 bridges page (e.g. https://bridges.torproject.org/bridges?format=plain)
441 * REMOVES the `bridgedb test` commandline option.
442 BridgeDB's tests can be run via `python setup.py test` or `make
443 test` (or `make coverage` for generating HTML test coverage
446 * CHANGES the HTTPS Distributor to HTML-encode Bridge Lines.
447 Previously, a malicious Pluggable Transport Bridge could include
448 in its PT arguments something like "evil=<script>[…]</script>" and
449 if such a Bridge were to be distributed to a user, that user's web
450 browser would execute the script (if Javacript was enabled).
451 Other characters, including non-ASCII, control characters, double
452 quotes, and backslashes, are also sanitised from Bridge Lines.
453 Thanks to Robert Ransom for the patches.
455 * CHANGES BridgeDB's module/package version numbers to be
456 compliant with PEP440.
458 * CHANGES the layout of BridgeDB's source code directories.
459 Rather than storing BridgeDB's source in "lib/bridgedb/", it is
460 now kept in "bridgedb/". Similarly, the directory containing
461 BridgeDB's tests has been moved from "lib/bridgedb/test/" to
462 "test/", which means that the tests are no longer installed when
463 running `python setup.py install` or `make install`.
465 * ADDS several improvements to the developer documentation at
466 https://pythonhosted.org/bridgedb.
468 * UPDATE English (en_US) translations.
470 * UPDATE English (en) translations.
472 * ADD Serbian (sr) translations.
473 Thanks to obj.petit.a, Ivan Radeljic, and Milenko Doder.
475 * UPDATE Arabic (ar) translations.
476 Thanks to A. Hassan, debo debo, KACIMI LAMINE, and Nudroid A.
478 * UPDATE Catalan (ca) translations.
481 * UPDATE Czech (cs) translations.
482 Thanks to Tomas Palik and Vlastimil Burián.
484 * UPDATE Danish (da) translations.
485 Thanks to Mogelbjerg.
487 * UPDATE German (de) translations.
488 Thanks to jschfr, Junge Limba, and Toralf Förster.
490 * UPDATE English (en_GB) translations.
491 Thanks to Andi Chandler.
493 * UPDATE Farsi (fa) translations.
494 Thanks to some awesome anonymous person for helping out.
496 * UPDATE Finish (fi) translations.
497 Thanks to Riku Viitanen.
499 * UPDATE French (fr) translations.
500 Thanks to elouann, Trans-fr, and Towinet.
502 * UPDATE French (fr_CA) translations.
505 * UPDATE Croatian (hr_HR) translations.
506 Thanks to some awesome anonymous person for helping out.
508 * UPDATE Hungarian (hu) translations.
509 Thanks to some awesome anonymous person for helping out.
511 * UPDATE Indonesian (id) translations.
512 Thanks to Anthony Santana, Astryd Viandila Dahlan, cholif yulian,
513 constantius damar wicaksono, Dwi Cahyono, L1Nus, km242saya, and
516 * UPDATE Italian (it) translations.
519 * UPDATE Japanese (ja) translations.
520 Thanks to ABE Tsunehiko.
522 * UPDATE Latvian (lv) translations.
523 Thanks to Ojārs Balcers.
525 * UPDATE Norwegian Bokmål (nb) translations.
526 Thanks to Erik Matson and Kristian Andre Henriksen.
528 * UPDATE Dutch (nl) translations.
531 * UPDATE Polish (pl) translations.
532 Thanks to Karol Obartuch.
534 * UPDATE Portuguese (pt) translations.
535 Thanks to Bruno D. Rodrigues and MMSRS.
537 * UPDATE Brazillian Portuguese (pt_BR) translations.
540 * UPDATE Romanian (ro) translations.
541 Thanks to Ana, axel_89, and Di N.
543 * UPDATE Russian (ru) translations.
546 * UPDATE Slovak (sk_SK) translations.
549 * UPDATE Albanian (sq) translations.
550 Thanks to some awesome unknown anonymous person who didn't add their
551 name to the list of translators.
553 * UPDATE Swedish (sv) translations.
554 Thanks to Peter Michanek.
556 * UPDATE Turkish (tr) translations.
557 Thanks to Bullgeschichte and Fomas.
559 * UPDATE Ukranian (uk) translations.
562 * UPDATE Chinese Mandarin (zh_CN) translations.
565 * UPDATE Taiwanese Mandarin (zh_TW) translations.
569 Changes in version 0.3.2 - 2015-05-01
571 * FIXES a problem with the calculation of Levenshtein distances
572 between blacklisted email addresses and those on incoming
573 email. This fixes a problem with the fuzzy matching implemented in
574 #9385: https://bugs.torproject.org/9385.
576 * FIXES #1839 https://bugs.torproject.org/1839
577 BridgeDB's distributors now rotate their hashrings at
578 configurable scheduled intervals.
580 * FIXES #4771 https://bugs.torproject.org/4771
581 BridgeDB now records which of the HTTPS Distributor's
582 sub-hashrings are used for clients coming from Tor Exit nodes and
585 * FIXES #12504 https://bugs.torproject.org/12504
586 Which Pluggable Transports BridgeDB distributes is now easily
587 configurable via the bridgedb.conf configuration file.
589 * FIXES #13202 https://bugs.torproject.org/13202
590 Old bridges running Tor-0.2.4.x with Pluggable Transports like
591 scramblesuit and obfs4proxy have a bug which causes them to not
592 include the PT arguments in the `transport` line they submit to
593 the BridgeAuthority in their extrainfo descriptors. This causes
594 BridgeDB to have broken bridge lines for these bridges.
595 For example, scramblesuit requires a `password=` in the
596 `ClientTransportPlugin` for clients to connect to it. If BridgeDB
597 receives a line in that bridge's extrainfo which says
598 `transport scramblesuit 1.2.3.4:1234` (without a password), then
599 when BridgeDB gives clients a bridge line for that bridge, it'll
600 look like "Bridge scramblesuit 1.2.3.4:1234" - meaning that it won't
601 work. This fixes the issue by excluding broken transports from
602 being distributed to clients.
604 * FIXES #15517 https://bugs.torproject.org/15517
605 For all clients who are coming from IPv6 addresses and are not
606 using Tor, who go to https://bridges.torproject.org, BridgeDB now
607 groups these clients together by /32. This "grouping" causes all
608 IPv6 clients within the same IPv6 /32 to get the same bridges.
609 Previously, BridgeDB grouped IPv6 clients by /64 (which is
610 ridiculously small, considering standard IPv6 allocation sizes).
612 For all clients who are coming from IPv4 addresses and are not
613 using Tor, BridgeDB now groups these clients together by /16.
614 Previously, BridgeDB grouped IPv4 clients by /24. (This latter
615 change was technically made as part of #4771.)
617 * FIXES #15464 https://bugs.torproject.org/15464
618 The setup procedure for creating a BridgeDB Continuous Integration
619 build machine is now simplified and generalised to include build
620 environments like Jenkins, not just TravisCI.
622 * FIXES #15866 https://bugs.torproject.org/15866
623 BridgeDB now ignores nearly all the information in the
624 networkstatus-bridges file created by the BridgeAuthority.
626 * ADDS benchmark tests to BridgeDB's test suite, and some of
627 BridgeDB's algorithms have been revised to improve their speed.
630 Changes in version 0.3.1 - 2015-03-24
632 * FIXES #14065 https://bugs.torproject.org/14065
633 When requesting vanilla IPv6 bridges from
634 https://bridges.torproject.org, BridgeDB would respond with IPv4
635 addresses. It now correctly responds with IPv6 addresses.
637 And includes the following general changes:
639 * FIXES an issue with the filtering of hashrings while answering
640 requests for Pluggable Transports. (commit 3ef37df6)
642 * FIXES the return value from the GnuPG interface initialization
643 function (bridgedb.crypto.initializeGnuPG) when creating a test
644 signature has failed.
646 * CHANGES the way BridgeDB handles the case where it parses to
647 duplicate extrainfo descriptors (for the same Bridge) which also
648 have identical timestamps. Before, we assumed this wasn't
649 possible. It turns out that it not only is possible, but that
650 usually every batch of descriptors has at least one Bridge with
651 such a set of perfectly identical extrainfo descriptors. Even
652 stranger, it appears that only Bridges started for the first time
653 quite recently (within the last eight hours) display this
654 behaviour. BridgeDB now logs these errors, rather than leaving
658 * ADDS an environment variable check to setup.py which controls
659 whether the setup.py script tries to install the dependencies
660 listed in the requirements.txt file with easy_install. If the
661 environment variable BRIDGEDB_INSTALL_DEPENDENCIES=0, then
662 setup.py will not use easy_install. When BridgeDB is installed
663 via `make install` the default is to not use easy_install;
664 however, when installed via `python setup.py install`, the default
665 is to use easy_install to check for, find, and install
666 dependencies. (NOTE: the latter is *not* recommended.)
670 Changes in version 0.3.0 - 2015-03-21
672 * FIXES #2895 https://bugs.torproject.org/2895
673 BridgeDB no longer assumes that any extrainfo descriptor files are
674 in chronological order.
676 * FIXES #4405 https://bugs.torproject.org/4405
677 BridgeDB now has a built-in timer mechanism for scheduling
678 cronjobesque events. This is now used to routinely download and
679 parse the list of Tor exit relays in a completely asynchronous
682 * FIXES #9380 https://bugs.torproject.org/9380
683 BridgeDB now uses Stem (https://stem.torproject.org) for its
684 parsers, and has better classes for parsing and storing
685 information on Bridges and their Pluggable Transports.
686 Additionally, all of BridgeDB's parses and the new
687 Bridge/PluggableTransport classes all have 100% unittest and
688 integration test coverage.
690 * FIXES #10385 https://bugs.torproject.org/10385
691 BridgeDB now uses python-gnupg (https://pypi.python.org/gnupg)
692 instead of GPGME (libgpgme11 and pygpgme). Previously, when using
693 GPGME, BridgeDB was unable to sign emails with a subkey whose
694 master private key was not present, causing all signing to be
695 broken. Additionally, GPGME tried to access and modify the
696 BridgeDB users $HOME directory, and GPGME would also try to create
697 signatures with encryption-only subkeys, and try to
698 encrypt/decrypt with signing-only subkeys. All of these issues are
699 no more, because the writhing tangled mass of bugs known ad GPGME
702 * FIXES #11216 https://bugs.torproject.org/11216
703 BridgeDB no longer parses any extrainfo descriptor files
704 cumulatively. Before, a Bridge which had a descriptor in
705 cached-extrainfo and in cached-extrainfo.new and supported obfs3,
706 obfs4, and scramblesuit transports would be parsed twice,
707 resulting in the Bridge having six transports. This is no longer
710 * HOTFIXES an issue with non-deterministic unittest failures in
711 the Mechanize-based integrations tests in
712 lib/bridgedb/test/test_https.py. hotfix/0.2.4-mechanize-tags
714 * FIXES part of #12507 https://bugs.torproject.org/12507
715 BridgeDB now has semi-automated developer documentation builds at
716 https://pythonhosted.org/bridgedb/.
718 * FIXES #12805 https://bugs.torproject.org/12805
719 BridgeDB is now packaged on PyPI, in the hopes that someday other
720 organisations will be able to run their own BridgeDBs.
722 * FIXES #12843 https://bugs.torproject.org/12843
723 BridgeDB will no longer distribute bridges which it believes are
724 located in Iran or Syria.
726 * FIXES #12872 https://bugs.torproject.org/12872
727 BridgeDB now has geolocational information for Bridges, telling it
728 which country each Bridge's primary ORAddress is within, as well
729 as geolocational information for each PluggableTransport address.
730 Thanks to Alden S. Page for the patches.
732 * FIXES #15155 https://bugs.torproject.org/15155
733 The instructions for obtaining a copy of Tor Browser should now be
735 Thanks to Jens Kubieziel, Nick Mathewson, and Peter Palfrader.
737 And includes the following general changes:
738 * CHANGES BridgeDB's continuous integration infrastructure to run
740 - Twisted-13.2.0 (Debian Wheezy version),
741 - Twisted-14.0.2 (Debian Jessie version), and
742 - Twisted-15.0.0 (latest and greatest)
743 As well as testing both:
744 - pyOpenSSL-0.13.1 (Debian Wheezy version), and
745 - pyOpenSSL-0.14 (Debian Jessie version).
746 See https://travis-ci.org/isislovecruft/bridgedb/builds
748 * FIXES an issue with the $PYTHON_EGG_CACHE directory being group
749 writable on Travis-CI build machines.
751 * UPDATE English (en_US) translations.
753 * UPDATE English (en) translations.
755 * ADD Tamil (ta) translations.
758 * ADD Albanian (sq) translations.
759 Thanks to Bujar Tafili.
761 * ADD Slovenian (sl_SI) translations.
762 Thanks to Dušan, marko, and Nwolfy.
764 * ADD Slovak (sk_SK) translations.
767 * ADD Esperanto (eo) translations.
768 Thanks to identity, Rico Chan, and trio.
770 * ADD Bulgarian (bg) translations.
773 * ADD Azerbaijani (az) translations.
776 * UPDATE Chinese (zh_TW) translations.
779 * UPDATE Chinese (zh_CN) translations.
780 Thanks to Wu Ming Shi and YF.
782 * UPDATE Ukranian (uk) translations.
783 Thanks to Eugene ghostishev, LinuxChata, Oleksii Golub, and
786 * UPDATE Turkish (tr) translations.
787 Thanks to eromytsatiffird, Emir Sarı, Idil Yuksel, ozkansib,
788 Volkan Gezer, and zeki.
790 * UPDATE Swedish (sv) translations.
791 Thanks to Anders Jensen-Urstad, Emil Johansson, GabSeb, ph AA, phst,
794 * UPDATE Slovak (sk) translations.
795 Thanks to elo, FooBar, Michal Slovák, Roman 'Kaktuxista' Benji, and
798 * UPDATE Russian (ru) translations.
799 Thanks to Andrey Yoker Ogurchikov, Evgrafov Denis, foo,
800 joshuaridney, Oleg, Sergey Briskin, Valid Olov, and Vitaliy Grishenko.
802 * UPDATE Romanian (ro) translations.
803 Thanks to Isus Satanescu, laura berindei, and clopotel.
805 * UPDATE Portuguese (pt_BR) translations.
806 Thanks to João Paulo S.S.
808 * UPDATE Portuguese (pt) translations.
809 Thanks to alfalb.as, André Monteiro, kagazz, Manuela Silva,
810 alfalb_mansil, Andrew_Melim, Pedro Albuquerque, Sérgio Marques, and
813 * UPDATE Polish (pl) translations.
814 Thanks to Aron, JerBen, bogdrozd, Dawid, Rikson, Krzysztof Łojowski,
817 * UPDATE Dutch (nl) translations.
818 Thanks to Adriaan Callaerts, Ann Boen, Cleveridge, Dick,
819 Johann Behrens, Shondoit Walker, Marco Brohet, guryman, Marco
820 Brohet, Tom Becht, Tonko Mulder, math1985, and BBLN.
822 * UPDATE Norwegian Bokmål (nb) translations.
823 Thanks to Allan Nordhøy, Harald, lateralus, Per Thorsheim,
826 * UPDATE Latvian (lv) translations.
827 Thanks to Ojārs Balcers and ThePirateDuck.
829 * UPDATE Khmer (km) translations.
830 Thanks to Seng Sutha, Sokhem Khoem, and Sok Sophea.
832 * UPDATE Japanese (ja) translations.
833 Thanks to brt, ABE Tsunehiko, タカハシ, Masaki Saito, and
836 * UPDATE Italian (it) translations.
837 Thanks to fetidyoo, Francesca Ciceri, HostFat, ironbishop, and
840 * UPDATE Hungarian (hu) translations.
841 Thanks to Blackywantscookies, Lajos Pasztor, Cerbo, and vargaviktor.
843 * UPDATE Croatian (hr) translations.
844 Thanks to Ana B, Armando Vega, skiddiep, Tomislav Siroglavić,
847 * UPDATE French (fr_CA) translations.
848 Thanks to Lunar, mehditaileb, Onizuka, and yahoe.001.
850 * UPDATE French (fr) translations.
851 Thanks to apaddlingduck, fayçal fatihi, Boubou, Cryptie,
852 Frisson Reynald, hpatte, Lucas Leroy, Lunar, Onizuka, and mehditaileb.
854 * UPDATE Finnish (fi) translations.
855 Thanks to Jorma Karvonen, Spacha, Ossi Kallunki, Sami Kuusisto,
856 viljaminojonen, and Finland355.
858 * UPDATE Farsi (fa) translations.
859 Thanks to arashaalaei, signal89, ardeshir, Gilberto, johnholzer,
860 Mohammad Hossein, perspolis, and Setareh.
862 * UPDATE Spanish (es) translations.
863 Thanks to dark_yoshi, toypurina, BL, NinjaTuna, Noel Torres,
864 Paola Falcon, strel, and Jonis.
866 * UPDATE English (en_GB) translations.
867 Thanks to Andi Chandler, Richard Shaylor, and ronnietse.
869 * UPDATE Greek (el) translations.
870 Thanks to Adrian Pappas, andromeas, oahanx, isv31, and kotkotkot.
872 * UPDATE German (de) translations.
873 Thanks to trantor, Ettore Atalan, unknwon_anonymous, konstibae,
874 Locke, Tobias Bannert, qbi, Sebastian, and debakel.
876 * UPDATE Danish (da) translations.
877 Thanks to Christian Villum, David Nielsen, OliverMller, torebjornson,
878 Thomas Pryds, and Tore Bjørnson.
880 * UPDATE Czech (cs) translations.
881 Thanks to A5h8d0wf0x, Adam Slovacek, Elisa, Sanky, Jiří Vírava,
882 mxsedlacek, and Radek Bensch.
884 * UPDATE Catalan (ca) translations.
885 Thanks to Albert, Assumpta Anglada, Eloi García i Fargas, Humbert,
888 * UPDATE Arabic (ar) translations.
889 Thanks to Ash and Valetudinarian.
891 Changes in version 0.2.4 - 2015-02-03
893 * HOTFIXES a UnicodeDecodeError resulting from patches for #12627.
894 https://bugs.torproject.org/12627
896 * FIXES #9874 https://bugs.torproject.org/9874
897 BridgeDB now has integration tests for all bridge distributors.
898 Thanks to trygve for the patches.
900 * FIXES #12871 https://bugs.torproject.org/12871
901 Bridge Buckets now work, even if the code for calculating Bridge
902 stability is disabled.
903 Thanks to Matt Finkel for the patches.
905 * FIXES part of #12029 https://bugs.torproject.org/12029
906 Major sections of the bridgedb.Bridges module, which holds
907 BridgeDB's main data structures for storing and parsing Bridges,
908 have been refactored in preparation for upcoming changes to use
909 Stem's parsers (see #9380 https://bugs.torproject.org/9380)
911 * FIXES #12932 https://bugs.torproject.org/12932
912 Arguments for Pluggable Transports in the bridge lines which
913 BridgeDB distributes to users are now properly
914 space-separated. This issue was affecting the deployment of the
915 obfs4 PT (see #12130 https://bugs.torproject.org/12130).
917 * FIXES #13123 https://bugs.torproject.org/13123
918 Previously, there were two additional whitespace characters at the
919 beginning of bridge lines handed out by BridgeDB's HTTPS
920 distributor, which would be annoyingly copy+pasted into TorLauncher
921 and torrcs, etc. These are now gone.
923 * FIXES #12664 https://bugs.torproject.org/12664
924 Previously, for the bridge lines handed out by BridgeDB's HTTPS
925 distributor, the newlines were not properly pasted when a user
926 would copy+paste the lines. This is now fixed. Additionally, there
927 is now a "Select All" button (JS must be enabled) to select all
928 text for the bridge lines, to attempt to reduce user copy+paste
929 errors. If the display area which contains the bridge lines is
930 clicked, and JS is enabled, it has the same effect as clicking the
933 * FIXES #14064 https://bugs.torproject.org/14064
934 The bridge lines handed out by BridgeDB's HTTPS distributor are
935 now displayed with a horizontal scrollbar if they are too long to
936 fit into the display area.
938 * FIXES #11345 https://bugs.torproject.org/11345
939 BridgeDB now supports giving users QRCodes for their bridge lines,
940 to facilitate getting bridges into Tails and onto mobile devices.
942 * FIXES #12130 https://bugs.torproject.org/12130
943 BridgeDB's distributors now have options to distribute obfs4 bridges.
945 And includes the following general changes:
946 * CHANGES the integration tests based on Mechanize to only run on
947 CI servers, not locally on developers laptops, since it requires
948 the running BridgeDB test/staging instance to offer a plaintext
949 HTTP interface. See commit 24acf6a72.
950 https://gitweb.torproject.org/bridgedb.git/commit/?id=24acf6a72931c602631c97dbbeb582c22cf446cb
952 * ADDS better installation instructions in README.rst for
953 developers who wish to test their changes to BridgeDB.
954 Thanks to Alden Page for the patch.
957 Changes in version 0.2.3 - 2014-07-26
959 * FIXES #5463 https://bugs.torproject.org/5463
960 BridgeDB can now OpenPGP sign outgoing emails.
962 * FIXES #9385 https://bugs.torproject.org/9385
963 BridgeDB now has the ability to blacklist email addresses, and
964 configurable options to fuzzy match and block addresses which are
965 similar enough to those in the blacklist.
967 * FIXES #11139 https://bugs.torproject.org/11139
968 You can now email BridgeDB from Riseup email addresses!
970 * FIXES #12147 https://bugs.torproject.org/12147
971 An additional issue with BridgeDB's code for scheduling actions
972 was identified by Robert Ransom, who also provided a unittest to
973 demonstrate the issue and test for future regressions. The issue
974 pointed out has also been fixed.
976 * FIXES #12635 https://bugs.torproject.org/12635
977 The links in BridgeDB's email and HTTPS distributor UIs have been
978 changed from the obsolete
979 https://www.torproject.org/projects/torbrowser.html.en#downloads-beta
980 to https://www.torproject.org/projects/torbrowser.html.
982 * FIXES #12650 https://bugs.torproject.org/12650
983 BridgeDB's translation files sometimes take a little while to
984 update because real live human volunteers need to go to
985 Transifex.org and convert the strings between languages. Then I
986 need to import the strings, check all of them by hand to make sure
987 there's no funny business which could harm users in them, and then
988 commit all the diffs. Sadly, there isn't much more we can do to
989 speed up this process, so sometimes BridgeDB's UI falls back to
990 English when it doesn't have new enough translations files. Sorry!
992 And includes the following general changes:
994 * UPDATE translation: Chinese - Taiwan (zh_TW)
996 * UPDATE translation: Chinese - China (zh_CN)
997 THANKS TO Meng3, leungsookfan, and Wu Ming Shi.
998 * UPDATE translation: Turkish (tr)
999 THANKS TO eromytsatiffird, Emre, Idil Yuksel, ozkansib,
1000 Volkan Gezer, and zeki.
1001 * UPDATE translation: Swedish (sv)
1002 THANKS TO Anders Jensen-Urstad, GabSeb, and phst.
1003 * UPDATE translation: Russian (ru)
1004 THANKS TO Evgrafov Denis, Eugene, foo, Sergey Briskin,
1005 Valid Olov, and Vitaliy Grishenko.
1006 * UPDATE translation: Brazilian Portuguese (pt_BR)
1007 THANKS TO Isabel Ferreira, and Rodrigo Emmanuel Santana
1009 * UPDATE translation: Portuguese (pt)
1010 THANKS TO André Monteiro, kagazz, Manuela Silva,
1011 Andrew_Melim, and Sérgio Marques.
1012 * UPDATE translation: Polish (pl)
1013 THANKS TO Aron, Dawid, Krzysztof Łojowski, and seb.
1014 * UPDATE translation: Norwegian Bokmål (nb)
1015 THANKS TO Allan Nordhøy, Harald, and thor574.
1016 * UPDATE translation: Malay (ms_MY)
1018 * UPDATE translation: Latvian (lv)
1019 THANKS TO Ojārs Balcers.
1020 * UPDATE translation: Khmer (km)
1021 THANKS TO Seng Sutha, Sokhem Khoem, and Sok Sophea.
1022 * UPDATE translation: Hungarian (hu)
1023 THANKS TO Blackywantscookies, and Cerbo.
1024 * UPDATE translation: Croatian (hr_HR)
1026 * UPDATE translation: Hebrew (he)
1028 * UPDATE translation: Canadian French (fr_CA)
1029 THANKS TO yahoe.001.
1030 * UPDATE translation: French (fr)
1031 THANKS TO fayçal fatihi, Frisson Reynald, hpatte, Lunar,
1032 Onizuka, themen, Towinet, and Yannick Heintz.
1033 * UPDATE translation: Finish (fi)
1034 THANKS TO viljaminojonen, and Finland355.
1035 * UPDATE translation: Farsi (fa)
1036 THANKS TO Mohammad Hossein.
1037 * UPDATE translation: Spanish - Chile (es_CL)
1038 THANKS TO Pablo Lezaeta.
1039 * UPDATE translation: Spanish (es)
1040 THANKS TO Paola Falcon.
1041 * UPDATE translation: British English (en_GB)
1042 THANKS TO richardshaylor.
1043 * UPDATE translation: Greek (el)
1044 THANKS TO Adrian Pappas, andromeas, isv31, and Wasilis
1046 * UPDATE translation: German (de)
1047 THANKS TO Tobias Bannert.
1048 * UPDATE translation: Danish (da)
1049 THANKS TO autofunk78.
1050 * UPDATE translation: Arabic (ar)
1051 THANKS TO Ahmad Gharbeia, Mohamed El-Feky, AnonymousLady,
1052 0xidz, Sherief Alaa , and محيي الدين.
1055 Changes in version 0.2.2 - 2014-06-06
1057 * FIXES #9874 https://bugs.torproject.org/9874
1058 BridgeDB's email and HTTPS distributors were written in a manner
1059 that makes them largely impossible to write unittests for. Since
1060 the recent rewrite of BridgeDB's email distributor server backends
1061 for version 0.2.1, BridgeDB email distributor is now testable and
1062 has near 100% code coverage, see
1063 https://coveralls.io/r/isislovecruft/bridgedb
1065 * FIXES #12086 https://bugs.torproject.org/12086
1066 BridgeDB was found to accept incoming emails sent to any email
1067 address whose local part included the word bridges, e.g. emails
1068 sent to 'givemebridges@serious.ly' would be responded to as if
1069 they were destined for BridgeDB's real email address.
1070 - BridgeDB now strictly checks that the local part of the email
1071 address that an incoming email was sent to (after removing plus
1072 aliases, i.e. '+es_ES', '+fa', etc.) exactly matches BridgeDB
1073 configured email address username.
1074 - BridgeDB now checks that the domain name portion of the email
1075 address that an incoming email was sent to either matches the
1076 domain name portion of BridgeDB's configured email address, or
1077 is a subdomain of that domain.
1079 * FIXES #12089 https://bugs.torproject.org/12089
1080 There has been a bug for quite some time now where BridgeDB could
1081 be used to email arbitrary email addresses (as long as these
1082 addresses were ones which BridgeDB allows, i.e. Gmail or Yahoo
1083 email addresses). This was due to BridgeDB not checking that the
1084 email address used in the SMTP 'MAIL FROM:' command on an incoming
1085 message matched the one used in that email's 'From:'
1087 - BridgeDB now checks that the email addresses in the SMTP 'MAIL
1088 FROM:' and the 'From:' header on that incoming email match, in
1089 addition to the previous checks that the email address' domain
1090 is in the set of allowed domains.
1092 * FIXES #12090 https://bugs.torproject.org/12090
1093 BridgeDB has been replying with an empty email. I don't actually
1094 know for sure if this one is fixed. Before deploying version
1095 0.2.1, the continuous integration tests showed email responses
1096 being correctly generated, and I was also able to receive
1097 correctly formed email responses from BridgeDB on a local testing
1098 instance on my laptop. It appears that this bug occurs only on the
1099 deployment server at ponticum.torproject.org, possibly due to the
1100 outdated Python version in Debian Wheezy. I have not been able to
1101 reproduce this bug on any other machine.
1103 * FIXES #12091 https://bugs.torproject.org/12091
1104 BridgeDB wasn't properly ignoring emails whose DKIM signature
1105 verification header read "X-DKIM-Authentication-Results: dunno".
1106 - Bridgedb now marks incoming emails which have a
1107 "X-DKIM-Authentication-Results: dunno" header as invalid and
1110 * FIXES #12147 https://bugs.torproject.org/12147
1111 If a user refreshed https://bridges.torproject.org/bridges after
1112 successfully solving a CAPTCHA, BridgeDB would reply with a new
1113 set of bridges for each page refresh. This was due to the use of
1114 `getInterval()` in `IPBasedDistributor.getBridgesForIP()`. The
1115 correct function to use is `getIntervalStart()`. This had been
1116 noted in a "XXX FIXME" comment above the call for quite some time,
1117 however, when the `bridgedb.schedule` (previously called
1118 `bridgedb.Time`) module was revised to support CAPTCHA timeouts
1119 (#11215), the call to `getInterval()` was mistakenly not replaced
1120 with the correct function.
1121 - BridgeDB CAPTCHAs must be solved within 10 minutes.
1122 - Hashring rotation for bridges in BridgeDB HTTPS distributor
1123 occurs every 3 hours. Refreshing the page with bridges on it
1124 will return these same bridges for that time period, and
1125 afterwards redirect back to the CAPTCHA page.
1126 THANKS TO francisco on IRC and arma for reporting the bug.
1128 * FIXES #12212 https://bugs.torproject.org/12122
1129 TRANSLATOR comments are now properly extracted into the gettext PO
1132 And include the following general changes:
1133 * FIXES an issue where, when verifying GnuPG signatures made by
1134 BridgeDB's email distributor, GnuPG would error, saying, "invalid
1137 * ADD Korean (ko) translations.
1138 Thanks to ilbe123, cwt96, Dr.what, and pCsOrI.
1140 * UPDATE Ukranian (uk) translations.
1141 Thanks to LinuxChata and ghostishev.
1143 * UPDATE Turkish (tr) translations.
1144 Thanks to volkangezer.
1146 * UPDATE Brazilian Portuguese (pt_BR) translations.
1147 Thanks to Communia, Humberto Sartini, Anastasia01, and recognitium.
1149 * UPDATE Polish (pl) translations.
1150 Thanks to hoek, yodaa, maxxx, and sebx.
1152 * UPDATE Dutch (nl) translations.
1153 Thanks to Ann Boen, erwindelaat, guryman, and BBLN.
1154 You guys are extra awesome for translating the phrase:
1155 "Uh oh, spaghettios!"
1158 which, in English, literally means:
1159 "Unfortunately, peanut butter!"
1160 You guys totally just made my day. Thanks.
1162 * UPDATE Japanese (ja) translations.
1163 Thanks to plazmism, who is extra awesome for translating the phrase:
1164 "Uh oh, spaghettios!"
1167 which apparently the literal English translation is:
1168 "Husband spaghetti!"
1170 * UPDATE Italian (it) translations.
1173 * UPDATE Canadian French (fr_CA) translations.
1176 * UPDATE Spanish (es) translations.
1177 Thanks to dark_yoshi and strel.
1179 * UPDATE Greek (el) translations.
1180 Thanks to pappasadrian.
1182 * UPDATE German (de) translations.
1183 Thanks to trantor and unknwon_anonymous.
1185 * UPDATE Danish (da) translations.
1186 Thanks to autofunk78 and DavidNielsen.
1189 Changes in version 0.2.1 - 2014-05-16
1190 * FIXES #5463 https://bugs.torproject.org/5463
1191 Emails sent from BridgeDB's email distributor should now be signed.
1192 - BridgeDB's emails will be signed with its online GnuPG keypair. The
1193 public key has the following fingerprint:
1194 DF81 1109 E17C 8BF1 34B5 EEB6 8DC4 3A28 4882 1E32
1195 The online keypair rotates (a new one is placed on the server once
1196 per year), and it will ALWAYS be signed with BridgeDB's offline
1198 - The online keypair above contains two subkeys. The signing subkey
1199 has the fingerprint:
1200 9FE3 9D1A 7438 9223 3B3F 66F2 21B5 54E9 5938 F4D0
1201 - BridgeDB's offline keypair has the following fingerprint:
1202 7B78 4370 15E6 3DF4 7BB1 270A CBD9 7AA2 4E8E 472E
1203 All of BridgeDB's keys may be found on the public keyservers, as
1204 well as at https://bridges.torproject.org/keys
1206 * FIXES #7547 https://bugs.torproject.org/7547
1207 BridgeDB's email distributor will now send you a message
1208 explaining how to use it, including valid commands and the list of
1209 Pluggable Transport TYPES currently supported. To receive help
1210 with the email distributor, simply send an email to
1211 mailto:bridges@torproject.org.
1212 - Any emails which do not contain a valid command will receive
1213 the help text in response.
1214 - Otherwise, to specifically request the help text, just say
1216 in the body of your email.
1218 * FIXES #7550 https://bugs.torproject.org/7550
1219 BridgeDB's email responder is now interactive, as described in the
1220 above entry for ticket #7547.
1222 * FIXES #8241 https://bugs.torproject.org/8241
1223 BridgeDB's HTTP distributor won't tell you how to get obfs3
1224 bridges through email, although a blank email, or an email
1225 containing "get help" will.
1227 * CLOSES #9678 https://bugs.torproject.org/9678
1228 A "Select Language" button was requested for the HTTP distributor
1229 on https://bridges.torproject.org. Instead, translated pages are
1230 distributed automatically (via detecting the "Accept-Language"
1231 header which can be set in the Settings panel of all modern
1233 - To request a specific translation, the "lang=LOCALE" argument
1234 can be added to the URL of any page. For example:
1235 https://bridges.torproject.org/options?lang=ar
1236 will provide the bridge options selection page in Arabic.
1238 * FIXES #11215 https://bugs.torproject.org/11215
1239 BridgeDB's usage of gimp-captcha, which creates a local cache of
1240 CAPTCHA for use on the HTTP distributor, now supports timeouts. If
1241 a CAPTCHA is not solved within 30 minutes of being served to a
1242 client, the solution is invalid regardless of its correctness.
1244 * FIXES #11475 https://bugs.torproject.org/11475
1245 BridgeDB's email responder, up until this point, explained how to
1246 use bridges with Vidalia. It now uses the same help text as found
1247 at https://bridges.torproject.org/howto which explains how to
1248 enter bridges into TorLauncher (used by Tor Browser and Tails).
1250 * FIXES #11522 https://bugs.torproject.org/11522
1251 There were several errors and bugs in BridgeDB's email
1252 distributor. The entire system of server supporting BridgeDB's
1253 email distribution system was rewritten.
1255 * FIXES #11664 https://bugs.torproject.org/11664
1256 Due to changes in the Python language builtin `buffer` in Python3,
1257 which were backported to Python 2.7.6, but neither backported to
1258 Python 2.6.x nor to Python <= 2.7.5, BridgeDB's use of
1259 `io.StringIO` and `io.BytesIO` combined with buffers had to be
1260 revised to support both the new and old Python `buffer` APIs.
1262 * FIXES #11753 https://bugs.torproject.org/11753
1263 BridgeDB's emails should now be translated.
1264 - The translations system for BridgeDB, as well as the template
1265 system for emails, was completely rewritten. By default, email
1266 responses are in English. To receive an alternate translation,
1267 send an email to bridges+LOCALE@torproject.org, where "LOCALE" is
1269 - For example, to receive BridgeDB emails translated into
1270 Chinese, use mailto:bridges+zh_CN@torproject.org.
1271 - Or for Farsi translations, use mailto:bridges+fa@torproject.org.
1272 - For the full list of currently supported LOCALE codes, see
1273 https://gitweb.torproject.org/user/isis/bridgedb.git/tree/HEAD:/lib/bridgedb/i18n/
1275 And includes the following general changes:
1276 * UPDATES the Italian (it) gettext file.
1277 Thanks to Francesca Ciceri.
1278 * ADD Welsh (cy) translations.
1279 Thanks to huwwaters and littlegreykida.
1280 * ADD Slovak (sk) translations.
1281 Thanks to Michelozzo and Svistwarrior273.
1282 * UPDATES the bridgedb.pot translation template file. All the new
1283 strings in the email and HTTP user interfaces will now need
1284 translation! To help out with translations, please see:
1285 https://www.transifex.com/projects/p/torproject/resource/2-bridgedb-bridgedb-pot/
1286 * FIXES several typos in the BridgeDB's code documentation.
1287 * ADDS code documentation for several previously undocumented modules.
1289 Changes in version 0.2.0 - 2014-04-19
1290 * FIXES #5232 Perform long running and blocking transactions in
1291 background threads. Primarily this moves bridge descriptor
1292 reparsing into another thread, which significantly increases
1293 the availability of BridgeDB.
1294 * FIXES #9119 BridgeDB's logger now automatically sanitises all email
1295 and IP addresses when the SAFELOGGING config option is enabled.
1296 * FIXES #9875 BridgeDB logger now has 100% unittest coverage.
1297 * FIXES #10803 Vidalia is no longer mentioned on
1298 https://bridges.torproject.org, and instead there are new
1299 instructions on how to enter bridges into TBB>=3.5 (with
1301 * FIXES #11346 The web interface now has a homepage link. By clicking
1302 "BridgeDB" in the upper left corner, users can go back to the
1303 start of TBB downloading and bridge selection instructions at
1304 https://bridges.torproject.org.
1305 * FIXES #11370 We were using an old (and deprecated) module when we
1306 created our email responses. Now we use the newer version.
1307 * FIXES #11377 CAPTCHAs on BridgeDB's HTTPS interface are now
1309 Thanks to Kostas Jakeliunas for the patch.
1310 * FIXES #11522 fixes several issues with encodings and exception
1311 handling in the email distributor.
1313 And includes the following general changes:
1314 * NEW interface design for https://bridges.torproject.org, including
1315 updated CSS stylesheets, fonts, and HTML templates. In
1316 particular, the https://bridges.torproject.org/options page has
1317 been redesigned completely.
1318 Thanks to Xengi for providing a modified design of the "roots"
1319 Tor Project logo, which is used to link to
1320 https://www.torproject.org.
1321 * CHANGES the TBB download link on the main web interface page to link
1322 to the new TBB-3.6.x-beta bundles, which include patches by
1323 David Fifield to unify TBB and PTTBB into one browser, so that
1324 Pluggable Transports (PTs) are only enabled when the user
1325 includes a bridge line which uses that PT.
1326 * FIXES plaintext responses on https://bridges.torproject.org,
1327 these can be requested by using the 'format' HTTP parameter,
1328 like so: https://bridges.torproject.org/bridges?format=plain
1329 * FIXES the logging of all lines of (including headers!) of incoming
1331 * FIXES logfile rotation so that the files are only reable/writable
1332 by the running process owner, and no other user.
1333 * CHANGES the data format used for encrypted-then-HMACed CAPTCHAs
1334 to assume that the HMAC is the first 20 bytes. Before we
1335 assumed that the HMAC was separated from the encrypted data
1336 with a ';' character, which causes intermittent issues with
1337 some encoding and CAPTCHA solution values.
1338 * REFACTORS some of the translations handling code, so that soon emails
1339 will be translated (see #7550), and
1340 https://bridges.torproject.org should have a "Select Language"
1342 * BUMPS leekspin version to 0.1.3.
1344 Changes in version 0.1.6 - 2014-03-26
1345 BridgeDB 0.1.6 includes fixes for the following bugs:
1346 * FIXES #11196 BridgeDB should use leekspin
1347 * FIXES #11218 ReCaptchaProtectedResource.checkSolution()
1348 doesn't expect a deferred
1349 * FIXES #11219 BridgeDB's twisted version doesn´t have a
1350 `t.w.client.HTTPConnectionPool` class
1351 * FIXES #11231 BridgeDB's txrecaptcha returns the "No bridges
1352 available!" page if 'captcha_response_field' is blank
1354 And includes the following general changes:
1355 * ADDS several new translations languages.
1357 Changes in version 0.1.5 - 2014-02-27
1358 BridgeDB 0.1.5 includes fixes for the following bugs:
1359 * FIXES #9264 Problem with transport lines in BridgeDB's bridge
1360 pool assignment files
1361 * FIXES #10809 reCAPTCHA on bridges.torproject.org are impossible
1363 * FIXES #10834 Configurable reCAPTCHA remoteip
1364 * FIXES #11127 reCaptcha verification is hardcoded to use
1367 And includes the following general changes:
1368 * CHANGES the way the client's IP address is reported to the
1369 reCaptcha API server. Previously, for each client request, a
1370 completely random IP address was generated, and BridgeDB lied to
1371 the reCaptcha server by sending this random IP and saying that it
1372 was the client's IP. With these changes, BridgeDB can be
1373 configured to report a static IP address (it's own IP) as the
1374 client's IP, in the hopes that the IP whitelisting used by
1375 reCaptcha makes the returned CAPTCHAs less impossible to solve.
1376 * ADDS the ability to use a local cache of CAPTCHAs created by
1377 scripting Gimp with Python. See:
1378 https://github.com/isislovecruft/gimp-captcha
1379 * USES TLS during CAPTCHA solution verification when using
1383 Changes in version 0.1.4 - 2014-02-21
1384 BridgeDB 0.1.4 includes fixes for the following bugs:
1385 * FIXES an RTL encoding issue in the "Step 2" text on index.html
1386 of the HTTPS distributor.
1389 Changes in version 0.1.3 - 2014-02-21
1390 BridgeDB 0.1.3 includes fixes for the following bugs:
1391 * FIXES #9264 Problem with transport lines in BridgeDB's bridge
1392 pool assignment files
1393 * FIXES a bug caused by attempts to convert descriptor digests
1394 which could not be parsed into hexadecimal.
1395 * FIXES a unicode decoding error within the bridgedb.persistent
1397 * REMOVES continuous integration testing for Python 2.6.
1399 Including the following general changes:
1400 * ADD volunteer page text for GSoC 2014 applications.
1403 Changes in version 0.1.2 - 2014-02-05
1404 BridgeDB 0.1.2 includes fixes for the following bugs:
1405 * FIXES #10811 BridgeDB's assignments.log files are not being updated
1408 Changes in version 0.1.1 - 2014-02-03
1409 BridgeDB 0.1.1 includes fixes for the following bugs:
1410 * FIXES #9127 Users can't ask for ipv6 bridges with the new bridgedb
1412 * FIXES #9988 Refactor BridgeDB's use of `sha` module to use `hashlib`
1413 * FIXES #10724 Most of the time spent in testing, as well as most
1414 of the time spent when "BridgeDB is down" (i.e. when I reply
1415 with "BridgeDB is single-threaded (see #5232) and is parsing
1416 millions of descriptors"), is within the same
1417 `bridgedb.Stability.addOrUpdateBridgeHistory()` function (see
1418 #10724). This function is pretty brutal on CPU and memory, is
1419 blocking, and it needs to runs thousands and thousands of
1420 times whenever BridgeDB is restarted (every half hour). The
1421 algorithm within that function has a time complexity increasing
1422 linearithmically relative to the number of bridges and timestamps
1423 already within the database. [0]
1424 This patch adds a config option to disable/enable running
1425 the `addOrUpdateBridgeHistory()` function.
1426 [0]: https://en.wikipedia.org/wiki/Time_complexity#Linearithmic_time
1427 * FIXES #10737 POST arguments to bridges.torproject.org are dropped if
1428 entering a CAPTCHA fails
1430 Including the following general changes:
1431 * ADDS A general simple error page to display rather than
1432 webserver tracebacks. See #6127.
1433 * MOVES The recently added BridgeDB specification file
1434 ('doc/bridge-db-spec.txt') to the torspec repo:
1435 https://gitweb.torproject.org/torspec.git
1436 * FIXES template caching for the web interface.
1439 Changes in version 0.1.0 - 2014-01-14
1440 BridgeDB 0.1.0 includes fixes for the following bugs:
1441 * FIXES #1606 Write a BridgeDB spec
1442 * FIXES #3573 bridges.torproject.org doesn't have a robots.txt
1443 * FIXES #6127 bridges.tpo runs in development mode
1444 * FIXES #9013 BridgeDB should pass pluggable transport
1445 shared-secrets to clients
1446 * FIXES #9157 Persian and Arabic should be right aligned on bridges.tpo
1447 * FIXES #9462 BridgeDB netstatus descriptor parsers need refactoring
1448 * FIXES #9959 BridgeDB seems to be missing English translations
1449 * FIXES #9865 Add automated code coverage report generation
1450 * FIXES #9872 Create a test runner for BridgeDB unittests
1451 * FIXES #9873 Convert BridgeDB's old unittests to use twisted.trial
1452 * FIXES #9937 Create fake non-sanitised bridge descriptors for
1453 BridgeDB testing purposes
1454 * FIXES #10333 Indexing list-like objects by 0L in
1455 Bridges.getConfigLine
1456 * FIXES #10446 BridgeDB is/was using a GeoIP module which is
1457 incompatible with virtualenvs
1458 * FIXES #10559 BridgeDB writes `keyid=` before fingerprints
1460 Including the following general changes:
1461 * ADD Numerous unittests and automated continuous integration testing.
1462 * ADD Patches by sysrqb to correctly render right-to-left languages.
1463 * FIXES fallback languages for translations.
1464 * ADD Sphinx makefiles, substantial amounts of documentation.
1465 * ADD Documentations builds (currently at
1466 https://para.noid.cat/bridgedb)
1469 Changes in version 0.0.1 - 2013-08-20
1470 BridgeDB 0.0.1 includes fixes for the following bugs:
1471 * FIXES #5332 Update BridgeDB documentation with deployment
1473 * FIXES #9156 BridgeDB: Users try to add obfsbridges to their
1475 These commits were added to fix a compatibility issue with
1476 Vidalia, though they may be reverted to switch back to the old
1477 behaviour of returning bridge lines in the form:
1478 Bridge [transport_method] address:port [keyid=fingerprint] [K=v] […]
1479 in order to work with torrc files and the new TBB-3.x packages
1480 which use TorLauncher instead of Vidalia.
1481 * PARTIAL FIX #9264 Problem with transport lines in BridgeDB's
1482 bridge pool assignment files.
1483 * FIXES #9425 Create and document a better BridgeDB (re)deployment
1486 Including the following general changes:
1487 * UPDATE translations files with finished files from Transifex for
1488 the strings for the newly-refactored web interface created by
1490 * ADD an automatic version-numbering system as part of developing
1491 a better deployment strategy.
1492 * CHANGE setup.py script to automatically install Python-based
1493 dependencies from requirements.txt.
1494 * REMOVE MANIFEST.in and put equivalent 'include' directives into
1495 setup.py (the less places we have for manually keeping track of
1497 * REMOVE the "bridge " prefix from the lines returned on the web