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