tor-commits
Threads by month
- ----- 2025 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
August 2013
- 19 participants
- 1224 discussions

25 Aug '13
commit 48f6dd0d9e2088936c72392c185f35d2401bad5f
Author: George Kadianakis <desnacked(a)riseup.net>
Date: Sun Nov 4 16:33:35 2012 +0200
Add TRANSPORT_LAUNCHED control port event.
---
control-spec.txt | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/control-spec.txt b/control-spec.txt
index 8e1cb9d..db16356 100644
--- a/control-spec.txt
+++ b/control-spec.txt
@@ -291,7 +291,7 @@
"AUTHDIR_NEWDESCS" / "DESCCHANGED" / "STATUS_GENERAL" /
"STATUS_CLIENT" / "STATUS_SERVER" / "GUARD" / "NS" / "STREAM_BW" /
"CLIENTS_SEEN" / "NEWCONSENSUS" / "BUILDTIMEOUT_SET" / "SIGNAL" /
- "CONF_CHANGED" / "CIRC_MINOR"
+ "CONF_CHANGED" / "CIRC_MINOR" / "TRANSPORT_LAUNCHED"
Any events *not* listed in the SETEVENTS line are turned off; thus, sending
SETEVENTS with an empty body turns off all event reporting.
@@ -2107,6 +2107,19 @@
[First added in 0.2.3.11-alpha]
+4.1.20. Pluggable transport launched
+
+ The syntax is:
+
+ "650" SP "TRANSPORT_LAUNCHED" SP Type SP Name SP Address SP Port
+ Type = "server" | "client"
+ Name = The name of the pluggable transport
+ Address = The IP address on which it is listening for connections
+ Port = The TCP port on which it is listening for connections.
+
+ A pluggable transport called 'Name' of type 'Type' was launched
+ successfully and is now listening for connections on 'Address':'Port'.
+
5. Implementation notes
5.1. Authentication
1
0

25 Aug '13
commit 7936065770c1431efb39f3ce6815743fb6efa13a
Merge: 6a0694f 48f6dd0
Author: Nick Mathewson <nickm(a)torproject.org>
Date: Sun Aug 25 11:34:14 2013 -0400
Merge remote-tracking branch 'asn/bug7317'
control-spec.txt | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
1
0
commit 907711d790a391c12a398d3cc402c37a68576381
Author: George Kadianakis <desnacked(a)riseup.net>
Date: Sat Jan 26 13:25:09 2013 +0200
Add a changes file for #5609.
---
changes/bug5609 | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/changes/bug5609 b/changes/bug5609
new file mode 100644
index 0000000..1057e30
--- /dev/null
+++ b/changes/bug5609
@@ -0,0 +1,4 @@
+ o Minor features:
+ - Implement the TRANSPORT_LAUNCHED control port event that
+ notifies controllers about new launched pluggable
+ transports. Resolves ticket 5609.
1
0

25 Aug '13
commit 078d6bcda538dd4d05148a876edba52c87831c7f
Author: Nick Mathewson <nickm(a)torproject.org>
Date: Sun Aug 25 11:29:03 2013 -0400
Basic unit test for EVENT_TRANSPORT_LAUNCHED
---
src/or/control.c | 58 ++++++++++------------------------------------------
src/or/control.h | 52 ++++++++++++++++++++++++++++++++++++++++++++++
src/test/test_pt.c | 44 +++++++++++++++++++++++++++++++++++++++
3 files changed, 107 insertions(+), 47 deletions(-)
diff --git a/src/or/control.c b/src/or/control.c
index 7bab440..9eaaef5 100644
--- a/src/or/control.c
+++ b/src/or/control.c
@@ -52,41 +52,6 @@
* finished authentication and is accepting commands. */
#define STATE_IS_OPEN(s) ((s) == CONTROL_CONN_STATE_OPEN)
-/* Recognized asynchronous event types. It's okay to expand this list
- * because it is used both as a list of v0 event types, and as indices
- * into the bitfield to determine which controllers want which events.
- */
-#define EVENT_MIN_ 0x0001
-#define EVENT_CIRCUIT_STATUS 0x0001
-#define EVENT_STREAM_STATUS 0x0002
-#define EVENT_OR_CONN_STATUS 0x0003
-#define EVENT_BANDWIDTH_USED 0x0004
-#define EVENT_CIRCUIT_STATUS_MINOR 0x0005
-#define EVENT_NEW_DESC 0x0006
-#define EVENT_DEBUG_MSG 0x0007
-#define EVENT_INFO_MSG 0x0008
-#define EVENT_NOTICE_MSG 0x0009
-#define EVENT_WARN_MSG 0x000A
-#define EVENT_ERR_MSG 0x000B
-#define EVENT_ADDRMAP 0x000C
-// #define EVENT_AUTHDIR_NEWDESCS 0x000D
-#define EVENT_DESCCHANGED 0x000E
-// #define EVENT_NS 0x000F
-#define EVENT_STATUS_CLIENT 0x0010
-#define EVENT_STATUS_SERVER 0x0011
-#define EVENT_STATUS_GENERAL 0x0012
-#define EVENT_GUARD 0x0013
-#define EVENT_STREAM_BANDWIDTH_USED 0x0014
-#define EVENT_CLIENTS_SEEN 0x0015
-#define EVENT_NEWCONSENSUS 0x0016
-#define EVENT_BUILDTIMEOUT_SET 0x0017
-#define EVENT_SIGNAL 0x0018
-#define EVENT_CONF_CHANGED 0x0019
-#define EVENT_TRANSPORT_LAUNCHED 0x0020
-#define EVENT_MAX_ 0x0020
-/* If EVENT_MAX_ ever hits 0x0040, we need to make the mask into a
- * different structure. */
-
/** Bitfield: The bit 1<<e is set if <b>any</b> open control
* connection is interested in events of type <b>e</b>. We use this
* so that we can decide to skip generating event messages that nobody
@@ -132,15 +97,6 @@ static uint8_t *authentication_cookie = NULL;
* of this so we can respond to getinfo status/bootstrap-phase queries. */
static char last_sent_bootstrap_message[BOOTSTRAP_MSG_LEN];
-/** Flag for event_format_t. Indicates that we should use the one standard
- format.
- */
-#define ALL_FORMATS 1
-
-/** Bit field of flags to select how to format a controller event. Recognized
- * flag is ALL_FORMATS. */
-typedef int event_format_t;
-
static void connection_printf_to_buf(control_connection_t *conn,
const char *format, ...)
CHECK_PRINTF(2,3);
@@ -594,9 +550,9 @@ send_control_done(control_connection_t *conn)
*
* The EXTENDED_FORMAT and NONEXTENDED_FORMAT flags behave similarly with
* respect to the EXTENDED_EVENTS feature. */
-static void
-send_control_event_string(uint16_t event, event_format_t which,
- const char *msg)
+MOCK_IMPL(STATIC void,
+send_control_event_string,(uint16_t event, event_format_t which,
+ const char *msg))
{
smartlist_t *conns = get_connection_array();
(void)which;
@@ -4763,3 +4719,11 @@ control_free_all(void)
tor_free(authentication_cookie);
}
+#ifdef TOR_UNIT_TESTS
+/* For testing: change the value of global_event_mask */
+void
+control_testing_set_global_event_mask(uint64_t mask)
+{
+ global_event_mask = mask;
+}
+#endif
diff --git a/src/or/control.h b/src/or/control.h
index 2d38ed8..099782a 100644
--- a/src/or/control.h
+++ b/src/or/control.h
@@ -96,9 +96,61 @@ void control_event_transport_launched(const char *mode,
void control_free_all(void);
#ifdef CONTROL_PRIVATE
+/* Recognized asynchronous event types. It's okay to expand this list
+ * because it is used both as a list of v0 event types, and as indices
+ * into the bitfield to determine which controllers want which events.
+ */
+#define EVENT_MIN_ 0x0001
+#define EVENT_CIRCUIT_STATUS 0x0001
+#define EVENT_STREAM_STATUS 0x0002
+#define EVENT_OR_CONN_STATUS 0x0003
+#define EVENT_BANDWIDTH_USED 0x0004
+#define EVENT_CIRCUIT_STATUS_MINOR 0x0005
+#define EVENT_NEW_DESC 0x0006
+#define EVENT_DEBUG_MSG 0x0007
+#define EVENT_INFO_MSG 0x0008
+#define EVENT_NOTICE_MSG 0x0009
+#define EVENT_WARN_MSG 0x000A
+#define EVENT_ERR_MSG 0x000B
+#define EVENT_ADDRMAP 0x000C
+/* Exposed above */
+// #define EVENT_AUTHDIR_NEWDESCS 0x000D
+#define EVENT_DESCCHANGED 0x000E
+/* Exposed above */
+// #define EVENT_NS 0x000F
+#define EVENT_STATUS_CLIENT 0x0010
+#define EVENT_STATUS_SERVER 0x0011
+#define EVENT_STATUS_GENERAL 0x0012
+#define EVENT_GUARD 0x0013
+#define EVENT_STREAM_BANDWIDTH_USED 0x0014
+#define EVENT_CLIENTS_SEEN 0x0015
+#define EVENT_NEWCONSENSUS 0x0016
+#define EVENT_BUILDTIMEOUT_SET 0x0017
+#define EVENT_SIGNAL 0x0018
+#define EVENT_CONF_CHANGED 0x0019
+#define EVENT_TRANSPORT_LAUNCHED 0x0020
+#define EVENT_MAX_ 0x0020
+/* If EVENT_MAX_ ever hits 0x0040, we need to make the mask into a
+ * different structure. */
+
/* Used only by control.c and test.c */
STATIC size_t write_escaped_data(const char *data, size_t len, char **out);
STATIC size_t read_escaped_data(const char *data, size_t len, char **out);
+/** Flag for event_format_t. Indicates that we should use the one standard
+ format. (Other formats previous existed, and are now deprecated)
+ */
+#define ALL_FORMATS 1
+/** Bit field of flags to select how to format a controller event. Recognized
+ * flag is ALL_FORMATS. */
+typedef int event_format_t;
+
+#ifdef TOR_UNIT_TESTS
+MOCK_DECL(STATIC void,
+send_control_event_string,(uint16_t event, event_format_t which,
+ const char *msg));
+
+void control_testing_set_global_event_mask(uint64_t mask);
+#endif
#endif
#endif
diff --git a/src/test/test_pt.c b/src/test/test_pt.c
index 433f85d..3277921 100644
--- a/src/test/test_pt.c
+++ b/src/test/test_pt.c
@@ -7,9 +7,11 @@
#define PT_PRIVATE
#define UTIL_PRIVATE
#define STATEFILE_PRIVATE
+#define CONTROL_PRIVATE
#include "or.h"
#include "config.h"
#include "confparse.h"
+#include "control.h"
#include "transports.h"
#include "circuitbuild.h"
#include "util.h"
@@ -318,6 +320,22 @@ get_or_state_replacement(void)
return dummy_state;
}
+static int controlevent_n = 0;
+static uint16_t controlevent_event = 0;
+static smartlist_t *controlevent_msgs = NULL;
+
+static void
+send_control_event_string_replacement(uint16_t event, event_format_t which,
+ const char *msg)
+{
+ (void) which;
+ ++controlevent_n;
+ controlevent_event = event;
+ if (!controlevent_msgs)
+ controlevent_msgs = smartlist_new();
+ smartlist_add(controlevent_msgs, tor_strdup(msg));
+}
+
/* Test the configure_proxy() function. */
static void
test_pt_configure_proxy(void *arg)
@@ -334,6 +352,10 @@ test_pt_configure_proxy(void *arg)
tor_process_handle_destroy_replacement);
MOCK(get_or_state,
get_or_state_replacement);
+ MOCK(send_control_event_string,
+ send_control_event_string_replacement);
+
+ control_testing_set_global_event_mask(EVENT_TRANSPORT_LAUNCHED);
mp = tor_malloc(sizeof(managed_proxy_t));
mp->conf_state = PT_PROTO_ACCEPTING_METHODS;
@@ -364,6 +386,21 @@ test_pt_configure_proxy(void *arg)
/* check the mp state */
test_assert(mp->conf_state == PT_PROTO_COMPLETED);
+ tt_int_op(controlevent_n, ==, 5);
+ tt_int_op(controlevent_event, ==, EVENT_TRANSPORT_LAUNCHED);
+ tt_int_op(smartlist_len(controlevent_msgs), ==, 5);
+ smartlist_sort_strings(controlevent_msgs);
+ tt_str_op(smartlist_get(controlevent_msgs, 0), ==,
+ "650 TRANSPORT_LAUNCHED server mock1 127.0.0.1 5551\r\n");
+ tt_str_op(smartlist_get(controlevent_msgs, 1), ==,
+ "650 TRANSPORT_LAUNCHED server mock2 127.0.0.1 5552\r\n");
+ tt_str_op(smartlist_get(controlevent_msgs, 2), ==,
+ "650 TRANSPORT_LAUNCHED server mock3 127.0.0.1 5553\r\n");
+ tt_str_op(smartlist_get(controlevent_msgs, 3), ==,
+ "650 TRANSPORT_LAUNCHED server mock4 127.0.0.1 5554\r\n");
+ tt_str_op(smartlist_get(controlevent_msgs, 4), ==,
+ "650 TRANSPORT_LAUNCHED server mock5 127.0.0.1 5555\r\n");
+
{ /* check that the transport info were saved properly in the tor state */
config_line_t *transport_in_state = NULL;
smartlist_t *transport_info_sl = smartlist_new();
@@ -389,6 +426,13 @@ test_pt_configure_proxy(void *arg)
tor_free(dummy_state);
UNMOCK(tor_get_lines_from_handle);
UNMOCK(tor_process_handle_destroy);
+ UNMOCK(get_or_state);
+ UNMOCK(send_control_event_string);
+ if (controlevent_msgs) {
+ SMARTLIST_FOREACH(controlevent_msgs, char *, cp, tor_free(cp));
+ smartlist_free(controlevent_msgs);
+ controlevent_msgs = NULL;
+ }
}
#define PT_LEGACY(name) \
1
0

[tor/master] Implement the TRANSPORT_LAUNCHED control port event.
by nickm@torproject.org 25 Aug '13
by nickm@torproject.org 25 Aug '13
25 Aug '13
commit 6dd462e8bcaecb8224302b402214b546cf790c5f
Author: George Kadianakis <desnacked(a)riseup.net>
Date: Wed Jan 23 12:41:19 2013 +0200
Implement the TRANSPORT_LAUNCHED control port event.
---
src/or/control.c | 19 ++++++++++++++++++-
src/or/control.h | 4 ++++
src/or/transports.c | 4 ++++
3 files changed, 26 insertions(+), 1 deletion(-)
diff --git a/src/or/control.c b/src/or/control.c
index fc4809b..37bbab4 100644
--- a/src/or/control.c
+++ b/src/or/control.c
@@ -82,7 +82,8 @@
#define EVENT_BUILDTIMEOUT_SET 0x0017
#define EVENT_SIGNAL 0x0018
#define EVENT_CONF_CHANGED 0x0019
-#define EVENT_MAX_ 0x0019
+#define EVENT_TRANSPORT_LAUNCHED 0x0020
+#define EVENT_MAX_ 0x0020
/* If EVENT_MAX_ ever hits 0x0020, we need to make the mask wider. */
/** Bitfield: The bit 1<<e is set if <b>any</b> open control
@@ -958,6 +959,7 @@ static const struct control_event_t control_event_table[] = {
{ EVENT_BUILDTIMEOUT_SET, "BUILDTIMEOUT_SET" },
{ EVENT_SIGNAL, "SIGNAL" },
{ EVENT_CONF_CHANGED, "CONF_CHANGED"},
+ { EVENT_TRANSPORT_LAUNCHED, "TRANSPORT_LAUNCHED" },
{ 0, NULL },
};
@@ -4737,6 +4739,21 @@ control_event_clients_seen(const char *controller_str)
"650 CLIENTS_SEEN %s\r\n", controller_str);
}
+/** A new pluggable transport called <b>transport_name</b> was
+ * launched on <b>addr</b>:<b>port</b>. <b>mode</b> is either
+ * "server" or "client" depending on the mode of the pluggable
+ * transport.
+ * "650" SP "TRANSPORT_LAUNCHED" SP Mode SP Name SP Address SP Port
+ */
+void
+control_event_transport_launched(const char *mode, const char *transport_name,
+ tor_addr_t *addr, uint16_t port)
+{
+ send_control_event(EVENT_TRANSPORT_LAUNCHED, ALL_FORMATS,
+ "650 TRANSPORT_LAUNCHED %s %s %s %u\r\n",
+ mode, transport_name, fmt_addr(addr), port);
+}
+
/** Free any leftover allocated memory of the control.c subsystem. */
void
control_free_all(void)
diff --git a/src/or/control.h b/src/or/control.h
index 1a44768..2d38ed8 100644
--- a/src/or/control.h
+++ b/src/or/control.h
@@ -89,6 +89,10 @@ MOCK_DECL(void, control_event_bootstrap_problem,(const char *warn,
int reason));
void control_event_clients_seen(const char *controller_str);
+void control_event_transport_launched(const char *mode,
+ const char *transport_name,
+ tor_addr_t *addr, uint16_t port);
+
void control_free_all(void);
#ifdef CONTROL_PRIVATE
diff --git a/src/or/transports.c b/src/or/transports.c
index f6bbbe8..f9499eb 100644
--- a/src/or/transports.c
+++ b/src/or/transports.c
@@ -98,6 +98,7 @@
#include "entrynodes.h"
#include "connection_or.h"
#include "ext_orport.h"
+#include "control.h"
static process_environment_t *
create_managed_proxy_environment(const managed_proxy_t *mp);
@@ -659,6 +660,7 @@ register_server_proxy(const managed_proxy_t *mp)
save_transport_to_state(t->name, &t->addr, t->port);
log_notice(LD_GENERAL, "Registered server transport '%s' at '%s'",
t->name, fmt_addrport(&t->addr, t->port));
+ control_event_transport_launched("server", t->name, &t->addr, t->port);
} SMARTLIST_FOREACH_END(t);
}
@@ -681,9 +683,11 @@ register_client_proxy(const managed_proxy_t *mp)
break;
case 0:
log_info(LD_GENERAL, "Successfully registered transport %s", t->name);
+ control_event_transport_launched("client", t->name, &t->addr, t->port);
break;
case 1:
log_info(LD_GENERAL, "Successfully registered transport %s", t->name);
+ control_event_transport_launched("client", t->name, &t->addr, t->port);
transport_free(transport_tmp);
break;
}
1
0
commit 69312c7a8430479847ceae5f0db44f19bcd0a6f4
Author: Nick Mathewson <nickm(a)torproject.org>
Date: Sun Aug 25 10:38:20 2013 -0400
Widen event_mask_t to 64 bits
---
src/or/control.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/or/control.c b/src/or/control.c
index 37bbab4..7bab440 100644
--- a/src/or/control.c
+++ b/src/or/control.c
@@ -84,7 +84,8 @@
#define EVENT_CONF_CHANGED 0x0019
#define EVENT_TRANSPORT_LAUNCHED 0x0020
#define EVENT_MAX_ 0x0020
-/* If EVENT_MAX_ ever hits 0x0020, we need to make the mask wider. */
+/* If EVENT_MAX_ ever hits 0x0040, we need to make the mask into a
+ * different structure. */
/** Bitfield: The bit 1<<e is set if <b>any</b> open control
* connection is interested in events of type <b>e</b>. We use this
@@ -92,7 +93,7 @@
* has interest in without having to walk over the global connection
* list to find out.
**/
-typedef uint32_t event_mask_t;
+typedef uint64_t event_mask_t;
/** An event mask of all the events that any controller is interested in
* receiving. */
@@ -104,7 +105,7 @@ static int disable_log_messages = 0;
/** Macro: true if any control connection is interested in events of type
* <b>e</b>. */
#define EVENT_IS_INTERESTING(e) \
- (global_event_mask & (1<<(e)))
+ (!! (global_event_mask & (((uint64_t)1)<<(e))))
/** If we're using cookie-type authentication, how long should our cookies be?
*/
1
0
commit 34179395657c478527bff8cdb94d9d142013494a
Merge: 2452302 078d6bc
Author: Nick Mathewson <nickm(a)torproject.org>
Date: Sun Aug 25 11:32:55 2013 -0400
Merge branch 'bug5609_rebased'
changes/bug5609 | 4 +++
src/or/control.c | 76 ++++++++++++++++++++-------------------------------
src/or/control.h | 56 +++++++++++++++++++++++++++++++++++++
src/or/transports.c | 4 +++
src/test/test_pt.c | 44 +++++++++++++++++++++++++++++
5 files changed, 137 insertions(+), 47 deletions(-)
1
0
Author: phobos
Date: 2013-08-25 11:30:53 +0000 (Sun, 25 Aug 2013)
New Revision: 26319
Removed:
website/.gitignore
website/.htaccess
Log:
remove the rest of 26317.
Deleted: website/.gitignore
===================================================================
--- website/.gitignore 2013-08-25 11:16:46 UTC (rev 26318)
+++ website/.gitignore 2013-08-25 11:30:53 UTC (rev 26319)
@@ -1,93 +0,0 @@
-/Makefile.local
-.deps
-
-about/board.html.en
-about/contact.html.en
-about/contributors.html.en
-about/corepeople.html.en
-about/financials.html.en
-about/gsoc.html.en
-about/overview.html.en
-about/sponsors.html.en
-about/torusers.html.en
-about/translators.html.en
-about/volunteers.html.en
-about/jobs-browserhacker.html.en
-about/jobs-coredev.html.en
-about/jobs-pluggabletransport.html.en
-about/jobs-projectcoordinator.html.en
-about/jobs-translatorsupport.html.en
-about/jobs.html.en
-docs/N900.html.en
-docs/android.html.en
-docs/bridges.html.en
-docs/debian-vidalia.html.en
-docs/debian.html.en
-docs/documentation.html.en
-docs/faq-abuse.html.en
-docs/faq.html.en
-docs/hidden-services.html.en
-docs/installguide.html.en
-docs/manual.html.en
-docs/pluggable-transports.html.en
-docs/proxychain.html.en
-docs/rpms.html.en
-docs/running-a-mirror.html.en
-docs/short-user-manual.html.en
-docs/signing-keys.html.en
-docs/tor-doc-osx.html.en
-docs/tor-doc-relay.html.en
-docs/tor-doc-unix.html.en
-docs/tor-doc-web.html.en
-docs/tor-doc-win32.html.en
-docs/tor-doc-windows.html.en
-docs/tor-hidden-service.html.en
-docs/tor-manual-dev.html.en
-docs/tor-manual.html.en
-docs/tor-relay-debian.html.en
-docs/trademark-faq.html.en
-docs/verifying-signatures.html.en
-donate/become-sponsor.html.en
-donate/donate-hardware.html.en
-donate/donate-service.html.en
-donate/donate.html.en
-donate/matching-program.html.en
-donate/thankyou.html.en
-download/download-easy.html.en
-download/download-unix.html.en
-download/download.html.en
-eff/tor-dmca-response.html.en
-eff/tor-legal-faq.html.en
-getinvolved/mirrors.html.en
-getinvolved/open-positions.html.en
-getinvolved/research.html.en
-getinvolved/relays.html.en
-getinvolved/translation-overview.html.en
-getinvolved/translation.html.en
-getinvolved/tshirt.html.en
-getinvolved/volunteer.html.en
-index.html.en
-press/2008-12-19-roadmap-press-release.html.en
-press/2009-03-12-performance-roadmap-press-release.html.en
-press/2010-03-25-tor-store-press-release.html.en
-press/2010-09-16-ten-things-circumvention-tools.html.en
-press/2011-08-28-tor-022-stable.html.en
-press/inthemedia.html.en
-press/press.html.en
-projects/arm.html.en
-projects/gettor.html.en
-projects/obfsproxy-debian-instructions.html.en
-projects/obfsproxy-instructions.html.en
-projects/obfsproxy.html.en
-projects/onionoo.html.en
-projects/projects.html.en
-projects/sampleproject.html.en
-projects/torbrowser-details.html.en
-projects/torbrowser.html.en
-projects/tordnsel.html.en
-projects/torweather.html.en
-projects/vidalia.html.en
-torbutton/index.html.en
-torbutton/torbutton-faq.html.en
-torbutton/torbutton-options.html.en
-
Deleted: website/.htaccess
===================================================================
--- website/.htaccess 2013-08-25 11:16:46 UTC (rev 26318)
+++ website/.htaccess 2013-08-25 11:30:53 UTC (rev 26319)
@@ -1,52 +0,0 @@
-RewriteEngine On
-
-# moved to /docs/
-RewriteRule ^faq(.*) /docs/faq$1 [R=301,L]
-RewriteRule ^bridges(.*) /docs/bridges$1 [R=301,L]
-RewriteRule ^abuse(.*) /docs/abuse$1 [R=301,L]
-RewriteRule ^documentation(.*) /docs/documentation$1 [R=301,L]
-RewriteRule ^verifying-signatures(.*) /docs/verifying-signatures$1 [R=301,L]
-RewriteRule ^tor-manual(.*) /docs/tor-manual$1 [R=301,L]
-
-# Torbutton
-RewriteRule ^torbutton/design(.*) /torbutton/en/design$1 [R=301,L]
-
-# Tor Browser
-RewriteRule ^torbrowser/dist/(.*) /dist/torbrowser/$1 [R=301,L]
-RewriteRule ^torbrowser/$ /projects/torbrowser.html.en [R=301,L]
-RewriteRule ^torbrowser(.*) /projects/torbrowser$1 [R=301,L]
-
-# Overview
-RewriteRule ^overview(.*) /about/overview$1 [R=301,L]
-
-# Vidalia
-RewriteRule ^vidalia/dist/(.*) /dist/vidalia/$1 [R=301,L]
-RewriteRule ^vidalia(.*) /projects/vidalia [R=301,L]
-
-# Press
-RewriteRule ^press/$ /press/press [R=301,L]
-RewriteRule ^press/index.html(.*) /press/press.html$1 [R=301,L]
-
-# Projects
-RewriteRule ^projects/$ /projects/projects [R=301,L]
-
-# GetInvolved
-RewriteRule ^getinvolved/$ /getinvolved/volunteer [R=301,L]
-RewriteRule ^volunteer(.*) /getinvolved/volunteer$1 [R=301,L]
-RewriteRule ^tshirt(.*) /getinvolved/tshirt$1 [R=301,L]
-
-RewriteRule ^research(.*) https://research.torproject.org/ [R=301,L]
-RewriteRule ^getinvolved/research(.*) https://research.torproject.org/ [R=301,L]
-
-# other (feel free to categorize)
-RewriteRule ^people(.*) /about/corepeople$1 [R=301,L]
-RewriteRule ^donate/$ /donate/donate [R=301,L]
-RewriteRule ^contact(.*) /about/contact$1 [R=301,L]
-
-# Download websites
-RewriteRule ^download/$ /download/download [R=301,L]
-RewriteRule ^download.html(.*) /download/download.html$1 [R=301,L]
-RewriteRule ^easy-download(.*) /download/download-easy$1 [R=301,L]
-
-# Relays
-RewriteRule ^relays(.*) /getinvolved/relays [R=301,L]
1
0
Author: phobos
Date: 2013-08-25 11:16:46 +0000 (Sun, 25 Aug 2013)
New Revision: 26318
Removed:
website/Makefile
website/Makefile.common
website/Makefile.local.sample
website/about/
website/cgi-bin/
website/css/
website/docs/
website/donate/
website/download/
website/eff/
website/en/
website/favicon.ico
website/getinvolved/
website/images/
website/include/
website/js/
website/manpages/
website/po2wml.sh
website/press/
website/projects/
website/publish
website/robots.txt
website/torbutton/
website/tordnsel/
website/update-mirrors.pl
website/wml2po.sh
Log:
revert 26317
Deleted: website/Makefile
===================================================================
--- website/Makefile 2013-08-24 20:38:20 UTC (rev 26317)
+++ website/Makefile 2013-08-25 11:16:46 UTC (rev 26318)
@@ -1,52 +0,0 @@
-# Directions for building the website:
-#
-# 1. Clone the Tor git repository and make TORGIT point to it:
-#
-# git clone git://git.torproject.org/tor/ tor.git
-#
-# Note that you will need to point to the actual .git directory.
-# 2. Edit include/versions.wmi or others if you like
-# 3. Update STABLETAG and DEVTAG below if there is a new git tag
-# 4. make
-# 5. ./publish
-
-export STABLETAG=tor-0.2.3.25
-export DEVTAG=tor-0.2.4.16-rc
-
-WMLBASE=.
-SUBDIRS=docs eff projects press about download getinvolved donate torbutton
-include $(WMLBASE)/Makefile.local
-
-include $(WMLBASE)/Makefile.common
-all: $(SUBDIRS)
-
-docs:
- $(MAKE) -C "$@" WMLBASE=..
-eff:
- $(MAKE) -C "$@" WMLBASE=..
-projects:
- $(MAKE) -C "$@" WMLBASE=..
-press:
- $(MAKE) -C "$@" WMLBASE=..
-about:
- $(MAKE) -C "$@" WMLBASE=..
-download:
- $(MAKE) -C "$@" WMLBASE=..
-getinvolved:
- $(MAKE) -C "$@" WMLBASE=..
-donate:
- $(MAKE) -C "$@" WMLBASE=..
-torbutton:
- $(MAKE) -C "$@" WMLBASE=..
-mirrors:
- ./update-mirrors.pl
-translations:
- ./po2wml.sh
-qrcode:
- qrencode -o $(IMGROOT)/android/orbot-qr-code-latest.png \
- "https://www.torproject.org/dist/android/alpha-orbot-latest.apk"
-
-# XXX: this also depends on all subs' wmlfiles. How to fix?
-#translation-status.html.en: $(LANGS) $(WMIFILES) $(WMLFILES)
-
-.PHONY: docs eff projects press about download getinvolved donate torbutton
Deleted: website/Makefile.common
===================================================================
--- website/Makefile.common 2013-08-24 20:38:20 UTC (rev 26317)
+++ website/Makefile.common 2013-08-25 11:16:46 UTC (rev 26318)
@@ -1,313 +0,0 @@
-# Directions for adding a new language:
-# 1. Add the two-letter code to LANGS below.
-# 2. Add a new "%.html.es: es/%.wml en/%.wml" clause below.
-# 3. Add a new ".deps/%.html.es.d: es/%.wml .deps/.stamp" clause below.
-# 4. mkdir a new two-letter directory. Make sure there's a foot.wmi
-# and navigation.wmi.
-# 5. Edit include/perl-globals.wmi, add to @LANGUAGES and %LANGUAGES.
-# You might find useful %LANGUAGES strings at the bottom of
-# http://debian.org/
-# 6. Add a new images/es.png flag image.
-
-WMLOPT = \
- -I $(WMLBASE)/include \
- -D DOCROOT=$(WMLBASE) \
- -D IMGROOT=$(WMLBASE)/images \
- -D TORGIT=$(TORGIT)\
- -D DEVTAG=$(DEVTAG) \
- -D STABLETAG=$(STABLETAG)
-
-#LANGS=ar bms cy da de en es et fa fi fr hu id it ja ko nl no pl pt pt-br ru se tr vn zh-cn
-LANGS=en
-
-WMLFILES=$(wildcard $(patsubst %, %/*.wml, $(LANGS)))
-WMIFILES=$(wildcard $(patsubst %, %/*.wmi, $(LANGS)) $(WMLBASE)/include/*.wmi )
-
-HTMLFILES=$(shell perl -le 's, (.*)/(.*).wml , $$2.html.$$1 ,x, print $$_ for @ARGV' $(WMLFILES))
-DEPFILES=$(shell perl -le 's, (.*)/(.*).wml , .deps/$$2.html.$$1.d ,x, print $$_ for @ARGV' $(WMLFILES))
-
-
-all: $(HTMLFILES)
-
-%.html.en: en/%.wml
- lang=`dirname $<` && wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $@
-
-%.html.ar: ar/%.wml en/%.wml
- lang=`dirname $<` && wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $@
-
-%.html.bms: bms/%.wml en/%.wml
- lang=`dirname $<` && wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $@
-
-%.html.cy: cy/%.wml en/%.wml
- lang=`dirname $<` && wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $@
-
-%.html.es: es/%.wml en/%.wml
- lang=`dirname $<` && wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $@
-
-%.html.et: et/%.wml en/%.wml
- lang=`dirname $<` && wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $@
-
-%.html.de: de/%.wml en/%.wml
- lang=`dirname $<` && wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $@
-
-%.html.da: da/%.wml en/%.wml
- lang=`dirname $<` && wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $@
-
-%.html.fa: fa/%.wml en/%.wml
- lang=`dirname $<` && wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $@
-
-%.html.id: id/%.wml en/%.wml
- lang=`dirname $<` && wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $@
-
-%.html.it: it/%.wml en/%.wml
- lang=`dirname $<` && wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $@
-
-%.html.fi: fi/%.wml en/%.wml
- lang=`dirname $<` && wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $@
-
-%.html.fr: fr/%.wml en/%.wml
- lang=`dirname $<` && wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $@
-
-%.html.hu: hu/%.wml en/%.wml
- lang=`dirname $<` && wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $@
-
-%.html.ja: ja/%.wml en/%.wml
- lang=`dirname $<` && wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $@
-
-%.html.ko: ko/%.wml en/%.wml
- lang=`dirname $<` && wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $@
-
-%.html.nl: nl/%.wml en/%.wml
- lang=`dirname $<` && wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $@
-
-%.html.no: no/%.wml en/%.wml
- lang=`dirname $<` && wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $@
-
-%.html.pl: pl/%.wml en/%.wml
- lang=`dirname $<` && wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $@
-
-%.html.pt: pt/%.wml en/%.wml
- lang=`dirname $<` && wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $@
-
-%.html.pt-br: pt-br/%.wml en/%.wml
- lang=`dirname $<` && wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $@
-
-%.html.ru: ru/%.wml en/%.wml
- lang=`dirname $<` && wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $@
-
-%.html.se: se/%.wml en/%.wml
- lang=`dirname $<` && wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $@
-
-%.html.tr: tr/%.wml en/%.wml
- lang=`dirname $<` && wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $@
-
-%.html.vi: vi/%.wml en/%.wml
- lang=`dirname $<` && wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $@
-
-%.html.vn: vn/%.wml en/%.wml
- lang=`dirname $<` && wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $@
-
-%.html.zh-cn: zh-cn/%.wml en/%.wml
- lang=`dirname $<` && wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $@
-
-.deps/%.html.en.d: en/%.wml .deps/.stamp
- tmpfile=`mktemp -t tmp.XXXXXXX` \
- lang=`dirname $<` && \
- OUT=`echo $@ | sed -e 's,\.deps/\(.*\)\.d$$,\1,'` && \
- wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $$OUT --depend | tee $$tmpfile > $@ && \
- sed -e s',\(^[^ ]*\):,.deps/\1.d:,' < $$tmpfile >> $@ && \
- rm -f $$tmpfile
-.deps/%.html.ar.d: ar/%.wml .deps/.stamp
- tmpfile=`mktemp -t tmp.XXXXXXX` \
- lang=`dirname $<` && \
- OUT=`echo $@ | sed -e 's,\.deps/\(.*\)\.d$$,\1,'` && \
- wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $$OUT --depend | tee $$tmpfile > $@ && \
- sed -e s',\(^[^ ]*\):,.deps/\1.d:,' < $$tmpfile >> $@ && \
- rm -f $$tmpfile
-.deps/%.html.bms.d: bms/%.wml .deps/.stamp
- tmpfile=`mktemp -t tmp.XXXXXXX` \
- lang=`dirname $<` && \
- OUT=`echo $@ | sed -e 's,\.deps/\(.*\)\.d$$,\1,'` && \
- wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $$OUT --depend | tee $$tmpfile > $@ && \
- sed -e s',\(^[^ ]*\):,.deps/\1.d:,' < $$tmpfile >> $@ && \
- rm -f $$tmpfile
-.deps/%.html.cy.d: cy/%.wml .deps/.stamp
- tmpfile=`mktemp -t tmp.XXXXXXX` \
- lang=`dirname $<` && \
- OUT=`echo $@ | sed -e 's,\.deps/\(.*\)\.d$$,\1,'` && \
- wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $$OUT --depend | tee $$tmpfile > $@ && \
- sed -e s',\(^[^ ]*\):,.deps/\1.d:,' < $$tmpfile >> $@ && \
- rm -f $$tmpfile
-.deps/%.html.es.d: es/%.wml .deps/.stamp
- tmpfile=`mktemp -t tmp.XXXXXXX` \
- lang=`dirname $<` && \
- OUT=`echo $@ | sed -e 's,\.deps/\(.*\)\.d$$,\1,'` && \
- wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $$OUT --depend | tee $$tmpfile > $@ && \
- sed -e s',\(^[^ ]*\):,.deps/\1.d:,' < $$tmpfile >> $@ && \
- rm -f $$tmpfile
-.deps/%.html.et.d: et/%.wml .deps/.stamp
- tmpfile=`mktemp -t tmp.XXXXXXX` \
- lang=`dirname $<` && \
- OUT=`echo $@ | sed -e 's,\.deps/\(.*\)\.d$$,\1,'` && \
- wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $$OUT --depend | tee $$tmpfile > $@ && \
- sed -e s',\(^[^ ]*\):,.deps/\1.d:,' < $$tmpfile >> $@ && \
- rm -f $$tmpfile
-.deps/%.html.de.d: de/%.wml .deps/.stamp
- tmpfile=`mktemp -t tmp.XXXXXXX` \
- lang=`dirname $<` && \
- OUT=`echo $@ | sed -e 's,\.deps/\(.*\)\.d$$,\1,'` && \
- wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $$OUT --depend | tee $$tmpfile > $@ && \
- sed -e s',\(^[^ ]*\):,.deps/\1.d:,' < $$tmpfile >> $@ && \
- rm -f $$tmpfile
-.deps/%.html.da.d: da/%.wml .deps/.stamp
- tmpfile=`mktemp -t tmp.XXXXXXX` \
- lang=`dirname $<` && \
- OUT=`echo $@ | sed -e 's,\.deps/\(.*\)\.d$$,\1,'` && \
- wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $$OUT --depend | tee $$tmpfile > $@ && \
- sed -e s',\(^[^ ]*\):,.deps/\1.d:,' < $$tmpfile >> $@ && \
- rm -f $$tmpfile
-.deps/%.html.id.d: it/%.wml .deps/.stamp
- tmpfile=`mktemp -t tmp.XXXXXXX` \
- lang=`dirname $<` && \
- OUT=`echo $@ | sed -e 's,\.deps/\(.*\)\.d$$,\1,'` && \
- wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $$OUT --depend | tee $$tmpfile > $@ && \
- sed -e s',\(^[^ ]*\):,.deps/\1.d:,' < $$tmpfile >> $@ && \
- rm -f $$tmpfile
-.deps/%.html.it.d: it/%.wml .deps/.stamp
- tmpfile=`mktemp -t tmp.XXXXXXX` \
- lang=`dirname $<` && \
- OUT=`echo $@ | sed -e 's,\.deps/\(.*\)\.d$$,\1,'` && \
- wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $$OUT --depend | tee $$tmpfile > $@ && \
- sed -e s',\(^[^ ]*\):,.deps/\1.d:,' < $$tmpfile >> $@ && \
- rm -f $$tmpfile
-.deps/%.html.fa.d: fa/%.wml .deps/.stamp
- tmpfile=`mktemp -t tmp.XXXXXXX` \
- lang=`dirname $<` && \
- OUT=`echo $@ | sed -e 's,\.deps/\(.*\)\.d$$,\1,'` && \
- wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $$OUT --depend | tee $$tmpfile > $@ && \
- sed -e s',\(^[^ ]*\):,.deps/\1.d:,' < $$tmpfile >> $@ && \
- rm -f $$tmpfile
-.deps/%.html.fi.d: fi/%.wml .deps/.stamp
- tmpfile=`mktemp -t tmp.XXXXXXX` \
- lang=`dirname $<` && \
- OUT=`echo $@ | sed -e 's,\.deps/\(.*\)\.d$$,\1,'` && \
- wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $$OUT --depend | tee $$tmpfile > $@ && \
- sed -e s',\(^[^ ]*\):,.deps/\1.d:,' < $$tmpfile >> $@ && \
- rm -f $$tmpfile
-.deps/%.html.fr.d: fr/%.wml .deps/.stamp
- tmpfile=`mktemp -t tmp.XXXXXXX` \
- lang=`dirname $<` && \
- OUT=`echo $@ | sed -e 's,\.deps/\(.*\)\.d$$,\1,'` && \
- wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $$OUT --depend | tee $$tmpfile > $@ && \
- sed -e s',\(^[^ ]*\):,.deps/\1.d:,' < $$tmpfile >> $@ && \
- rm -f $$tmpfile
-.deps/%.html.hu.d: hu/%.wml .deps/.stamp
- tmpfile=`mktemp -t tmp.XXXXXXX` \
- lang=`dirname $<` && \
- OUT=`echo $@ | sed -e 's,\.deps/\(.*\)\.d$$,\1,'` && \
- wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $$OUT --depend | tee $$tmpfile > $@ && \
- sed -e s',\(^[^ ]*\):,.deps/\1.d:,' < $$tmpfile >> $@ && \
- rm -f $$tmpfile
-.deps/%.html.ja.d: ja/%.wml .deps/.stamp
- tmpfile=`mktemp -t tmp.XXXXXXX` \
- lang=`dirname $<` && \
- OUT=`echo $@ | sed -e 's,\.deps/\(.*\)\.d$$,\1,'` && \
- wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $$OUT --depend | tee $$tmpfile > $@ && \
- sed -e s',\(^[^ ]*\):,.deps/\1.d:,' < $$tmpfile >> $@ && \
- rm -f $$tmpfile
-.deps/%.html.ko.d: ko/%.wml .deps/.stamp
- tmpfile=`mktemp -t tmp.XXXXXXX` \
- lang=`dirname $<` && \
- OUT=`echo $@ | sed -e 's,\.deps/\(.*\)\.d$$,\1,'` && \
- wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $$OUT --depend | tee $$tmpfile > $@ && \
- sed -e s',\(^[^ ]*\):,.deps/\1.d:,' < $$tmpfile >> $@ && \
- rm -f $$tmpfile
-.deps/%.html.nl.d: nl/%.wml .deps/.stamp
- tmpfile=`mktemp -t tmp.XXXXXXX` \
- lang=`dirname $<` && \
- OUT=`echo $@ | sed -e 's,\.deps/\(.*\)\.d$$,\1,'` && \
- wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $$OUT --depend | tee $$tmpfile > $@ && \
- sed -e s',\(^[^ ]*\):,.deps/\1.d:,' < $$tmpfile >> $@ && \
- rm -f $$tmpfile
-.deps/%.html.no.d: no/%.wml .deps/.stamp
- tmpfile=`mktemp -t tmp.XXXXXXX` \
- lang=`dirname $<` && \
- OUT=`echo $@ | sed -e 's,\.deps/\(.*\)\.d$$,\1,'` && \
- wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $$OUT --depend | tee $$tmpfile > $@ && \
- sed -e s',\(^[^ ]*\):,.deps/\1.d:,' < $$tmpfile >> $@ && \
- rm -f $$tmpfile
-.deps/%.html.pl.d: pl/%.wml .deps/.stamp
- tmpfile=`mktemp -t tmp.XXXXXXX` \
- lang=`dirname $<` && \
- OUT=`echo $@ | sed -e 's,\.deps/\(.*\)\.d$$,\1,'` && \
- wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $$OUT --depend | tee $$tmpfile > $@ && \
- sed -e s',\(^[^ ]*\):,.deps/\1.d:,' < $$tmpfile >> $@ && \
- rm -f $$tmpfile
-.deps/%.html.pt.d: pt/%.wml .deps/.stamp
- tmpfile=`mktemp -t tmp.XXXXXXX` \
- lang=`dirname $<` && \
- OUT=`echo $@ | sed -e 's,\.deps/\(.*\)\.d$$,\1,'` && \
- wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $$OUT --depend | tee $$tmpfile > $@ && \
- sed -e s',\(^[^ ]*\):,.deps/\1.d:,' < $$tmpfile >> $@ && \
- rm -f $$tmpfile
-.deps/%.html.pt-br.d: pt-br/%.wml .deps/.stamp
- tmpfile=`mktemp -t tmp.XXXXXXX` \
- lang=`dirname $<` && \
- OUT=`echo $@ | sed -e 's,\.deps/\(.*\)\.d$$,\1,'` && \
- wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $$OUT --depend | tee $$tmpfile > $@ && \
- sed -e s',\(^[^ ]*\):,.deps/\1.d:,' < $$tmpfile >> $@ && \
- rm -f $$tmpfile
-.deps/%.html.ru.d: ru/%.wml .deps/.stamp
- tmpfile=`mktemp -t tmp.XXXXXXX` \
- lang=`dirname $<` && \
- OUT=`echo $@ | sed -e 's,\.deps/\(.*\)\.d$$,\1,'` && \
- wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $$OUT --depend | tee $$tmpfile > $@ && \
- sed -e s',\(^[^ ]*\):,.deps/\1.d:,' < $$tmpfile >> $@ && \
- rm -f $$tmpfile
-.deps/%.html.se.d: se/%.wml .deps/.stamp
- tmpfile=`mktemp -t tmp.XXXXXXX` \
- lang=`dirname $<` && \
- OUT=`echo $@ | sed -e 's,\.deps/\(.*\)\.d$$,\1,'` && \
- wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $$OUT --depend | tee $$tmpfile > $@ && \
- sed -e s',\(^[^ ]*\):,.deps/\1.d:,' < $$tmpfile >> $@ && \
- rm -f $$tmpfile
-.deps/%.html.tr.d: tr/%.wml .deps/.stamp
- tmpfile=`mktemp -t tmp.XXXXXXX` \
- lang=`dirname $<` && \
- OUT=`echo $@ | sed -e 's,\.deps/\(.*\)\.d$$,\1,'` && \
- wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $$OUT --depend | tee $$tmpfile > $@ && \
- sed -e s',\(^[^ ]*\):,.deps/\1.d:,' < $$tmpfile >> $@ && \
- rm -f $$tmpfile
-.deps/%.html.vi.d: vi/%.wml .deps/.stamp
- tmpfile=`mktemp -t tmp.XXXXXXX` \
- lang=`dirname $<` && \
- OUT=`echo $@ | sed -e 's,\.deps/\(.*\)\.d$$,\1,'` && \
- wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $$OUT --depend | tee $$tmpfile > $@ && \
- sed -e s',\(^[^ ]*\):,.deps/\1.d:,' < $$tmpfile >> $@ && \
- rm -f $$tmpfile
-.deps/%.html.vn.d: vn/%.wml .deps/.stamp
- tmpfile=`mktemp -t tmp.XXXXXXX` \
- lang=`dirname $<` && \
- OUT=`echo $@ | sed -e 's,\.deps/\(.*\)\.d$$,\1,'` && \
- wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $$OUT --depend | tee $$tmpfile > $@ && \
- sed -e s',\(^[^ ]*\):,.deps/\1.d:,' < $$tmpfile >> $@ && \
- rm -f $$tmpfile
-.deps/%.html.zh-cn.d: zh-cn/%.wml .deps/.stamp
- tmpfile=`mktemp -t tmp.XXXXXXX` \
- lang=`dirname $<` && \
- OUT=`echo $@ | sed -e 's,\.deps/\(.*\)\.d$$,\1,'` && \
- wml $(WMLOPT) -I $$lang -I $(WMLBASE)/$$lang -D LANG=$$lang $< -o $$OUT --depend | tee $$tmpfile > $@ && \
- sed -e s',\(^[^ ]*\):,.deps/\1.d:,' < $$tmpfile >> $@ && \
- rm -f $$tmpfile
-.deps/.stamp:
- [ -d .deps ] || mkdir .deps
- touch "$@"
-
-dep: $(DEPFILES)
-clean:
- rm -f *.html.* .deps/*.html.*.d
- for sub in $(SUBDIRS); do \
- $(MAKE) -C "$$sub" WMLBASE=../$(WMLBASE) clean; \
- done
-
-include $(DEPFILES)
Deleted: website/Makefile.local.sample
===================================================================
--- website/Makefile.local.sample 2013-08-24 20:38:20 UTC (rev 26317)
+++ website/Makefile.local.sample 2013-08-25 11:16:46 UTC (rev 26318)
@@ -1,13 +0,0 @@
-# This is a sample for your Makefile.local.
-#
-# Copy this to Makefile.local and change the path to match your local
-# system.
-#
-
-# The path to a clone of the tor source code repository's .git dir.
-# Note that if your clone is a non-bare repository that you must not
-# leave out the .git part.
-#
-# e.g.:
-# export TORGIT=/home/weasel/projects/tor/tor/.git
-export TORGIT=set this to your tor.git path
Deleted: website/favicon.ico
===================================================================
(Binary files differ)
Deleted: website/po2wml.sh
===================================================================
--- website/po2wml.sh 2013-08-24 20:38:20 UTC (rev 26317)
+++ website/po2wml.sh 2013-08-25 11:16:46 UTC (rev 26318)
@@ -1,520 +0,0 @@
-#!/bin/bash
-#
-# Author: Runa Sandvik, <runa.sandvik(a)gmail.com>
-# Google Summer of Code 2009
-#
-# This is Free Software (GPLv3)
-# http://www.gnu.org/licenses/gpl-3.0.txt
-#
-# This script will convert all the translated po files back to wml
-# files.
-#
-# For more information, see the HOWTO and README in
-# translation/tools/gsoc09.
-#
-
-### start config ###
-
-# Location of the wml files
-wmldir="$PWD"
-
-# Location of the po files,
-podir="`dirname $wmldir`/translation/projects/website/po"
-
-# A lot of the wml files have custom tags. These tags have been defined
-# in website/include/versions.wmi. Tags that people usually forget to close,
-# as well as tags that are not defined in versions.wmi have been added.
-# See: https://svn.torproject.org/svn/website/trunk/include/versions.wmi
-customtag=`echo $(cat "$wmldir/include/versions.wmi" | awk '{ printf "<%s> " , $2 }' | sed 's/<>//g') "<svnsandbox> <svnwebsite> <svnprojects> <input> <hr> <br> <img> <gitblob>"`
-
-# We also need to use the nodefault option of po4a; space separated list
-# of tags that the module should not try to set by default in any
-# category. For now, we only need the input tag.
-nodefault='<input>'
-
-### end config ###
-
-# Create a lockfile to make sure that only one instance of the script
-# can run at any time.
-LOCKFILE=po2wml.lock
-
-if lockfile -! -l 60 -r 3 "$LOCKFILE";
-then
- echo "unable to acquire lock" >2
- exit 1
-fi
-
-trap "rm -f '$PWD/$LOCKFILE'" exit
-
-# Check if translation/projects/website exist, i.e. has been checked out
-if [ ! -d $podir ]
-then
- echo "Have you remembered to check out translation/projects/website?"
- exit 1
-fi
-
-# cd to the right directory so we can commit the files later
-cd "$wmldir"
-
-# We need to find the po files
-po=`find $podir -regex '^'$podir'/.*/.*\.po' -type f`
-
-# For every wml, update po
-for file in $po ; do
-
- # Validate input and write results to a log file
- validate_script="`dirname $wmldir`/translation/tools/validate.py"
- validate_log="`dirname $wmldir`/validate/website-validate.log"
- python "$validate_script" -i "$file" -l "$validate_log"
-
- # Get the basename of the file we are dealing with
- pofile=`basename $file`
-
- # Strip the file for its original extension and the translation
- # priority, and add .wml
- wmlfile="`echo $pofile | cut -d . -f 2`.wml"
-
- # Find out what directory the file is in.
- indir=`dirname $file`
-
- # We also need to know what one directory up is
- onedirup=`dirname $indir`
-
- # We need to find out what subdirectory we are in
- subdir=`dirname $file | sed "s#$onedirup/##"`
-
- # And which language we are dealing with
- lang=`dirname $indir | sed "s#$podir/##"`
-
- # Time to write the translated wml file.
- # The translated document is written if 80% or more of the po
- # file has been translated. Example: Use '-k 21' to set this
- # number down to 21%. Also, po4a-translate will only write the
- # translated document if 80% or more has been translated.
- # However, it will delete the wml if less than 80% has been
- # translated. To avoid having our current, translated wml files
- # deleted, convert the po to a temp wml first. If this file was
- # actually written, rename it to wml.
-
- # Convert translations to directories such as website/nb/.
- function nosubdir {
- # The location of the english wml file
- english="$wmldir/en/$wmlfile"
-
- # Convert the translated file. Note that po4a will write the file and then delete it if less than 80% has been translated
- po4a-translate -f wml -m "$english" -p "$file" -l "$wmldir/$subdir/$wmlfile" --master-charset utf-8 -L utf-8 -o customtag="$customtag" -o nodefault="$nodefault"
-
- # Check to see if the file was written
- if [ -e "$wmldir/$subdir/$wmlfile" ]
- then
- # Remove last three lines in file
- sed -i -e :a -e '$d;N;2,3ba' -e 'P;D' "$wmldir/$subdir/$wmlfile"
-
- # If the file is mirrors.wml, include mirrors-table.wmi
- if [ $wmlfile == "mirrors.wml" ]
- then
- sed -i 's/<!--PO4ASHARPBEGIN/#/' "$wmldir/$subdir/$wmlfile"
- sed -i 's/PO4ASHARPEND-->//' "$wmldir/$subdir/$wmlfile"
- fi
-
- # Include the English footer for most of the
- # translations
- if [[ $subdir != "ar" && $subdir != "pl" && $subdir != "de" && $subdir != "fa" ]]
- then
- echo '#include "foot.wmi"' >> "$wmldir/$subdir/$wmlfile"
- fi
-
- # If the translation is Polish, include the
- # correct header, menu files and footer
- if [ $subdir = "pl" ]
- then
- # Head
- orig_head=`grep '#include "head.wmi"' "$wmldir/$subdir/$wmlfile"`
- new_head=`echo $orig_head | sed s@head.wmi@pl/head.wmi@`
- sed -i "s@$orig_head@$new_head@" "$wmldir/$subdir/$wmlfile"
-
- # Side (not all files include this)
- orig_side=`grep '#include "side.wmi"' "$wmldir/$subdir/$wmlfile"`
- if [ -n "$orig_side" ]
- then
- new_side=`echo '#include "pl/side.wmi"'`
- sed -i "s@$orig_side@$new_side@" "$wmldir/$subdir/$wmlfile"
- fi
-
- # Info (not all files include this)
- orig_info=`grep '#include "info.wmi"' "$wmldir/$subdir/$wmlfile"`
- if [ -n "$orig_info" ]
- then
- new_info=`echo '#include "pl/info.wmi"'`
- sed -i "s@$orig_info@$new_info@" "$wmldir/$subdir/$wmlfile"
- fi
-
- # Footer
- echo '#include "pl/foot.wmi"' >> "$wmldir/$subdir/$wmlfile"
- fi
-
- # If the translation is German, include the
- # correct header, menu files and footer
- if [ $subdir = "de" ]
- then
- # Head
- orig_head=`grep '#include "head.wmi"' "$wmldir/$subdir/$wmlfile"`
- new_head=`echo $orig_head | sed s@head.wmi@de/head.wmi@`
- sed -i "s@$orig_head@$new_head@" "$wmldir/$subdir/$wmlfile"
-
- # Side (not all files include this)
- orig_side=`grep '#include "side.wmi"' "$wmldir/$subdir/$wmlfile"`
- if [ -n "$orig_side" ]
- then
- new_side=`echo '#include "de/side.wmi"'`
- sed -i "s@$orig_side@$new_side@" "$wmldir/$subdir/$wmlfile"
- fi
-
- # Info (not all files include this)
- orig_info=`grep '#include "info.wmi"' "$wmldir/$subdir/$wmlfile"`
- if [ -n "$orig_info" ]
- then
- new_info=`echo '#include "de/info.wmi"'`
- sed -i "s@$orig_info@$new_info@" "$wmldir/$subdir/$wmlfile"
- fi
-
- # Footer
- echo '#include "de/foot.wmi"' >> "$wmldir/$subdir/$wmlfile"
- fi
-
- # If the translation is Arabic, include the
- # correct header, css, menu files and footer
- if [ $subdir = "ar" ]
- then
- # Head
- orig_head=`grep '#include "head.wmi"' "$wmldir/$subdir/$wmlfile"`
- temp_head=`echo $orig_head | sed s@head.wmi@ar/head.wmi@`
- new_head=`echo $temp_head 'STYLESHEET="css/master-rtl.css"'`
- sed -i "s@$orig_head@$new_head@" "$wmldir/$subdir/$wmlfile"
-
- # Side (not all files include this)
- orig_side=`grep '#include "side.wmi"' "$wmldir/$subdir/$wmlfile"`
- if [ -n "$orig_side" ]
- then
- new_side=`echo '#include "ar/side.wmi"'`
- sed -i "s@$orig_side@$new_side@" "$wmldir/$subdir/$wmlfile"
- fi
-
- # Info (not all files include this)
- orig_info=`grep '#include "info.wmi"' "$wmldir/$subdir/$wmlfile"`
- if [ -n "$orig_info" ]
- then
- new_info=`echo '#include "ar/info.wmi"'`
- sed -i "s@$orig_info@$new_info@" "$wmldir/$subdir/$wmlfile"
- fi
-
- # Footer
- echo '#include "ar/foot.wmi"' >> "$wmldir/$subdir/$wmlfile"
- fi
-
- # If the translation is Farsi, include the
- # correct header, css, menu files and footer
- if [ $subdir = "fa" ]
- then
- # Head
- orig_head=`grep '#include "head.wmi"' "$wmldir/$subdir/$wmlfile"`
- temp_head=`echo $orig_head | sed s@head.wmi@fa/head.wmi@`
- new_head=`echo $temp_head 'STYLESHEET="css/master-rtl.css"'`
- sed -i "s@$orig_head@$new_head@" "$wmldir/$subdir/$wmlfile"
-
- # Side (not all files include this)
- orig_side=`grep '#include "side.wmi"' "$wmldir/$subdir/$wmlfile"`
- if [ -n "$orig_side" ]
- then
- new_side=`echo '#include "fa/side.wmi"'`
- sed -i "s@$orig_side@$new_side@" "$wmldir/$subdir/$wmlfile"
- fi
-
- # Info (not all files include this)
- orig_info=`grep '#include "info.wmi"' "$wmldir/$subdir/$wmlfile"`
- if [ -n "$orig_info" ]
- then
- new_info=`echo '#include "fa/info.wmi"'`
- sed -i "s@$orig_info@$new_info@" "$wmldir/$subdir/$wmlfile"
- fi
-
- # Footer
- echo '#include "fa/foot.wmi"' >> "$wmldir/$subdir/$wmlfile"
- fi
-
- # If the directory does not include sidenav.wmi,
- # copy it from the English directory (only if
- # the English directory has this file)
- if [[ ! -e "$wmldir/$subdir/sidenav.wmi" && -e "$wmldir/en/sidenav.wmi" ]]
- then
- cp "$wmldir/en/sidenav.wmi" "$wmldir/$subdir"
- fi
- fi
- }
-
- # Convert translations to directories such as website/torbrowser/nb/.
- # Again, po4a will write the file and then delete it if less than 80% has been translated
- function subdir {
- # The location of the english wml file
- english="$wmldir/$subdir/en/$wmlfile"
-
- # Convert the files
- if [ $wmlfile = "download.wml" ]
- then
- po4a-translate -f wml -m "$english" -p "$file" -l "$wmldir/$subdir/$lang/$wmlfile" --master-charset utf-8 -L utf-8 -o customtag="$customtag" -o nodefault="$nodefault" -o ontagerror="silent"
- else
- po4a-translate -f wml -m "$english" -p "$file" -l "$wmldir/$subdir/$lang/$wmlfile" --master-charset utf-8 -L utf-8 -o customtag="$customtag" -o nodefault="$nodefault"
- fi
-
- # Check to see if the file was written
- if [ -e "$wmldir/$subdir/$lang/$wmlfile" ]
- then
- # Remove last three lines in file
- sed -i -e :a -e '$d;N;2,3ba' -e 'P;D' "$wmldir/$subdir/$lang/$wmlfile"
-
- # Remove a specific comment from a specific file
- if [ $wmlfile == "download-easy.wml" ]
- then
- translator_comment="# Translators: please point to the version of TBB in your language, if there is one."
- sed -i "s/$translator_comment//" "$wmldir/$subdir/$lang/$wmlfile"
- fi
-
- # Fix download.wml
- if [ $wmlfile = "download.wml" ]
- then
- sed -i 's/<!--PO4ASHARPBEGINinclude <lang.wmi>/#include <lang.wmi>/g' "$wmldir/$subdir/$lang/$wmlfile"
- sed -i 's/<!--PO4ASHARPBEGINinclude <foot.wmi>//g' "$wmldir/$subdir/$lang/$wmlfile"
- sed -i 's/<!--PO4ASHARPBEGIN//g;s/PO4ASHARPEND-->//g' "$wmldir/$subdir/$lang/$wmlfile"
- echo "#include <foot.wmi>" >> "$wmldir/$subdir/$lang/$wmlfile"
- fi
-
- # Include the English footer for most of the
- # translations
- if [[ $lang != "ar" && $lang != "pl" && $lang != "de" && $lang != "fa" ]]
- then
- echo '#include "foot.wmi"' >> "$wmldir/$subdir/$lang/$wmlfile"
- fi
-
- # If the file is overview.wml, make sure we
- # include the correct set of images
- if [ $wmlfile = "overview.wml" ] && [[ $lang = "de" || $lang = "es" || $lang = "fr" ||
- $lang = "ja" || $lang = "nl" || $lang = "no" || $lang = "pl" || $lang = "ru" ||
- $lang = "zh" ]]
- then
- sed -i "s/htw1.png/htw1_$lang.png/" "$wmldir/$subdir/$lang/$wmlfile"
- sed -i "s/htw2.png/htw2_$lang.png/" "$wmldir/$subdir/$lang/$wmlfile"
- sed -i "s/htw3.png/htw3_$lang.png/" "$wmldir/$subdir/$lang/$wmlfile"
- fi
-
- # If the translation is Polish, include the
- # correct header, menu files and footer
- if [ $lang = "pl" ]
- then
- orig_head=`grep '#include "head.wmi"' "$wmldir/$subdir/$lang/$wmlfile"`
- new_head=`echo $orig_head | sed s@head.wmi@pl/head.wmi@`
- sed -i "s@$orig_head@$new_head@" "$wmldir/$subdir/$lang/$wmlfile"
-
- # Side (not all files include this)
- orig_side=`grep '#include "side.wmi"' "$wmldir/$subdir/$lang/$wmlfile"`
- if [ -n "$orig_side" ]
- then
- new_side=`echo '#include "pl/side.wmi"'`
- sed -i "s@$orig_side@$new_side@" "$wmldir/$subdir/$lang/$wmlfile"
- fi
-
- # Info (not all files include this)
- orig_info=`grep '#include "info.wmi"' "$wmldir/$subdir/$lang/$wmlfile"`
- if [ -n "$orig_info" ]
- then
- new_info=`echo '#include "pl/info.wmi"'`
- sed -i "s@$orig_info@$new_info@" "$wmldir/$subdir/$lang/$wmlfile"
- fi
-
- # Footer
- echo '#include "pl/foot.wmi"' >> "$wmldir/$subdir/$lang/$wmlfile"
- fi
-
- # If the translation is German, include the
- # correct header, menu files and footer
- if [ $lang = "de" ]
- then
- orig_head=`grep '#include "head.wmi"' "$wmldir/$subdir/$lang/$wmlfile"`
- new_head=`echo $orig_head | sed s@head.wmi@de/head.wmi@`
- sed -i "s@$orig_head@$new_head@" "$wmldir/$subdir/$lang/$wmlfile"
-
- # Side (not all files include this)
- orig_side=`grep '#include "side.wmi"' "$wmldir/$subdir/$lang/$wmlfile"`
- if [ -n "$orig_side" ]
- then
- new_side=`echo '#include "de/side.wmi"'`
- sed -i "s@$orig_side@$new_side@" "$wmldir/$subdir/$lang/$wmlfile"
- fi
-
- # Info (not all files include this)
- orig_info=`grep '#include "info.wmi"' "$wmldir/$subdir/$lang/$wmlfile"`
- if [ -n "$orig_info" ]
- then
- new_info=`echo '#include "de/info.wmi"'`
- sed -i "s@$orig_info@$new_info@" "$wmldir/$subdir/$lang/$wmlfile"
- fi
-
- # Footer
- echo '#include "de/foot.wmi"' >> "$wmldir/$subdir/$lang/$wmlfile"
-
- # If the file is tor-doc-windows, make
- # sure we include the German video
- if [ $wmlfile = "tor-doc-windows.wml" ]
- then
- orig_video=`grep src=\"https:\/\/media.torproject.org\/video\/2009-install-and-use-tor.ogv\" "$wmldir/$subdir/$lang/$wmlfile"`
- translated_video=`echo "<p>Das nachfolgende Video, wurde von SemperVideo erstellt.</p> <p><video id=\"v1\" src=\"https://media.torproject.org/video/2011-install-and-use-tor-de.ogv\" autobuffer=\"true\" controls=\"controls\"></video></p>"`
- new_video=`echo "$orig_video $translated_video"`
-
- sed -i "s@$orig_video@$new_video@" "$wmldir/$subdir/$lang/$wmlfile"
- fi
- fi
-
- # If the file is an Arabic translation, include the
- # correct header, css, menu files and footer
- if [ $lang = "ar" ]
- then
- # Head
- orig_head=`grep '#include "head.wmi"' "$wmldir/$subdir/$lang/$wmlfile"`
- temp_head=`echo $orig_head | sed s@head.wmi@ar/head.wmi@`
- new_head=`echo $temp_head 'STYLESHEET="css/master-rtl.css"'`
- sed -i "s@$orig_head@$new_head@" "$wmldir/$subdir/$lang/$wmlfile"
-
- # Side (not all files include this)
- orig_side=`grep '#include "side.wmi"' "$wmldir/$subdir/$lang/$wmlfile"`
- if [ -n "$orig_side" ]
- then
- new_side=`echo '#include "ar/side.wmi"'`
- sed -i "s@$orig_side@$new_side@" "$wmldir/$subdir/$lang/$wmlfile"
- fi
-
- # Info (not all files include this)
- orig_info=`grep '#include "info.wmi"' "$wmldir/$subdir/$lang/$wmlfile"`
- if [ -n "$orig_info" ]
- then
- new_info=`echo '#include "ar/info.wmi"'`
- sed -i "s@$orig_info@$new_info@" "$wmldir/$subdir/$lang/$wmlfile"
- fi
-
- # Footer
- echo '#include "ar/foot.wmi"' >> "$wmldir/$subdir/$lang/$wmlfile"
- fi
-
- # If the file is a Farsi translation, include the
- # correct header, css, menu files and footer
- if [ $lang = "fa" ]
- then
- # Head
- orig_head=`grep '#include "head.wmi"' "$wmldir/$subdir/$lang/$wmlfile"`
- temp_head=`echo $orig_head | sed s@head.wmi@fa/head.wmi@`
- new_head=`echo $temp_head 'STYLESHEET="css/master-rtl.css"'`
- sed -i "s@$orig_head@$new_head@" "$wmldir/$subdir/$lang/$wmlfile"
-
- # Side (not all files include this)
- orig_side=`grep '#include "side.wmi"' "$wmldir/$subdir/$lang/$wmlfile"`
- if [ -n "$orig_side" ]
- then
- new_side=`echo '#include "fa/side.wmi"'`
- sed -i "s@$orig_side@$new_side@" "$wmldir/$subdir/$lang/$wmlfile"
- fi
-
- # Info (not all files include this)
- orig_info=`grep '#include "info.wmi"' "$wmldir/$subdir/$lang/$wmlfile"`
- if [ -n "$orig_info" ]
- then
- new_info=`echo '#include "fa/info.wmi"'`
- sed -i "s@$orig_info@$new_info@" "$wmldir/$subdir/$lang/$wmlfile"
- fi
-
- # Footer
- echo '#include "fa/foot.wmi"' >> "$wmldir/$subdir/$lang/$wmlfile"
- fi
-
- # If the directory does not include sidenav.wmi,
- # copy it from the English directory (only if
- # the English directory has this file)
- if [[ ! -e "$wmldir/$subdir/$lang/sidenav.wmi" && -e "$wmldir/$subdir/en/sidenav.wmi" ]]
- then
- cp "$wmldir/$subdir/en/sidenav.wmi" "$wmldir/$subdir/$lang/"
- fi
- fi
- }
-
- # If $onedirup is equal to $lang, that means we do not have a
- # subdirectory.
- if [ $onedirup == $lang ]
- then
- # If the current directory is "pl_PL" use "pl" instead
- if [ $subdir = "pl_PL" ]
- then
- subdir="pl"
- nosubdir
- fi
-
- # If the current directory is "nb" use "no" instead
- if [ $subdir = "nb" ]
- then
- subdir="no"
- nosubdir
- fi
-
- # If the current directory is "sv" use "se" instead
- if [ $subdir = "sv" ]
- then
- subdir="se"
- nosubdir
- fi
-
- # If the current subdirectory is of the form "xx_XX",
- # rename to "xx-xx" instead (except for pl_PL)
- if [[ $subdir =~ "_" && $subdir != "pl_PL" ]]
- then
- subdir="`echo $subdir | sed s/_/-/ | tr '[A-Z]' '[a-z]'`"
- nosubdir
- fi
-
- # Convert everything else
- if [[ $subdir != "en" && $subdir != "pl_PL" && ! ($subdir =~ "_") && $subdir != "nb" && $subdir != "sv" ]]
- then
- nosubdir
- fi
- else
- # If the current language is "pl_PL" use "pl" instead
- if [ $lang = "pl_PL" ]
- then
- lang="pl"
- subdir
- fi
-
- # If the current language is "nb" use "no" instead
- if [ $lang = "nb" ]
- then
- lang="no"
- subdir
- fi
-
- # If the current language is "sv" use "se" instead
- if [ $lang = "sv" ]
- then
- lang="se"
- subdir
- fi
-
- # If the current languge is of the form "xx_XX", rename
- # to "xx-xx" instead (except for pl_PL)
- if [[ $lang =~ "_" && $lang != "pl_PL" ]]
- then
- lang="`echo $lang | sed s/_/-/ | tr '[A-Z]' '[a-z]'`"
- subdir
- fi
-
- # Convert everything else
- if [[ $lang != "en" && $lang != "pl_PL" && ! ($lang =~ "_") && $lang != "nb" && $lang != "sv" ]]
- then
- subdir
- fi
- fi
-done
Deleted: website/publish
===================================================================
--- website/publish 2013-08-24 20:38:20 UTC (rev 26317)
+++ website/publish 2013-08-25 11:16:46 UTC (rev 26318)
@@ -1,41 +0,0 @@
-#!/bin/sh
-set -e # stop if we encounter an error
-
-# pull the latest changes
-if [ -e .svn ] ; then
- svn update
-elif [ -e .git ] ; then
- git svn rebase
-else
- echo 2>&1 "Cannot figure out which version control thing you're using. Skipping update"
-fi
-
-# clean up the working directory
-make clean
-
-# actually build the site
-make -j3
-
-# don't copy over stuff with permissions that make it useless
-chmod -R a+r *
-rsync \
- --exclude .DS_Store \
- --exclude .svn \
- --exclude .git \
- --exclude '.*.sw[po]' \
- --exclude .deps \
- --exclude svn \
- --exclude dist \
- --exclude releases \
- --exclude torbutton-current.xpi \
- --exclude project \
- -Prvz --delete . www-master.torproject.org:/srv/www-master.torproject.org/htdocs
-
-echo "Forcing mirror update"
-ssh www-master.torproject.org '
- (
- find /srv/www-master.torproject.org/htdocs ! -perm -444 -print0 | xargs -0 --no-run-if-empty chmod -v a+r ||
- ( echo >&2 "There are unreadable files in /srv/www-master.torproject.org/htdocs, not triggering mirror run."; exit 1)
- ) &&
- echo "Triggering mirror run" &&
- /home/mirroradm/bin/trigger-mirrors'
Deleted: website/robots.txt
===================================================================
--- website/robots.txt 2013-08-24 20:38:20 UTC (rev 26317)
+++ website/robots.txt 2013-08-25 11:16:46 UTC (rev 26318)
@@ -1,2 +0,0 @@
-User-Agent: *
-Allow: /
Deleted: website/update-mirrors.pl
===================================================================
--- website/update-mirrors.pl 2013-08-24 20:38:20 UTC (rev 26317)
+++ website/update-mirrors.pl 2013-08-25 11:16:46 UTC (rev 26318)
@@ -1,1363 +0,0 @@
-#!/usr/bin/perl -w
-use warnings;
-use strict;
-use LWP::Simple;
-use LWP;
-use Date::Parse;
-use Date::Format;
-
-#
-# A quick hack by Jacob Appelbaum <jacob(a)appelbaum.net>
-# LWP suggestions by Leigh Honeywell
-# This is Free Software (GPLv3)
-# http://www.gnu.org/licenses/gpl-3.0.txt
-#
-# CHANGELOG
-# 20091003 Code changes to elimiate the need for a trailing slash in addresses for script runtime
-# 20091004 Code changes to increase out of date tolerance to 48 hours
-# 20091028 Code changes to increase timout to 30 seconds (attempting to # resolve "unknown" status')
-# 20091028 Code changes to change user agent of script
-# 20100807 Remove dead mirrors.
-
-print "Creating LWP agent ($LWP::VERSION)...\n";
-my $lua = LWP::UserAgent->new(
- keep_alive => 1,
- timeout => 30,
- agent => "Tor MirrorCheck Agent"
-);
-
-sub sanitize {
- my $taintedData = shift;
- my $cleanedData;
- my $whitelist = '-a-zA-Z0-9: +';
-
- # clean the data, return cleaned data
- $taintedData =~ s/[^$whitelist]//go;
- $cleanedData = $taintedData;
-
- return $cleanedData;
-}
-
-sub FetchDate {
- my $url = shift; # Base url for mirror
- my $trace = "project/trace/www-master.torproject.org"; # this file should always exist
- $url = "$url/$trace";
-
- print "Fetching possible date from: $url\n";
-
- my $request = new HTTP::Request GET => "$url";
- my $result = $lua->request($request);
- my $code = $result->code();
- print "Result code $code\n";
-
- if ($result->is_success && $code eq "200"){
- my $taint = $result->content;
- my $content = sanitize($taint);
- if ($content) {
-
- my $date = str2time($content);
-
- if ($date) {
- print "We've fetched a date $date.\n";
- return $date;
- } else {
- print "We've haven't fetched a date.\n";
- return "Unknown";
- }
-
- } else {
- print "Unable to fetch date, empty content returned.\n";
- return "Unknown";
- }
-
- } else {
- print "Our request failed, we had no result.\n";
- return "Unknown";
- }
-
- return "Unknown";
-}
-
-# This is the list of all known Tor mirrors
-# Add new mirrors to the bottom!
-my %m = (
-
-
- mirror000 => {
- adminContact => "coralcdn.org",
- orgName => "CoralCDN",
- isoCC => "INT",
- subRegion => "",
- region => "INT",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "Yes",
- httpWebsiteMirror => "http://www.torproject.org.nyud.net/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://www.torproject.org.nyud.net/dist/",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => ""
- },
-
- mirror001 => {
- adminContact => "BarkerJr AT barkerjr DOT net",
- orgName => "BarkerJr",
- isoCC => "FR",
- subRegion => "",
- region => "FR",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://www.oignon.net/",
- httpsWebsiteMirror => "https://www.oignon.net/",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://www.oignon.net/dist/",
- httpsDistMirror => "https://www.oignon.net/dist/",
- rsyncDistMirror => "",
- hiddenServiceMirror => ""
- },
-
- mirror003 => {
- adminContact => "citizen428 AT gmail DOT com",
- orgName => "[[:bbs:]]",
- isoCC => "DE",
- subRegion => "",
- region => "Europe",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "Unknown",
- httpWebsiteMirror => "http://tor.blingblingsquad.net/",
- httpsWebsiteMirror => "https://tor.blingblingsquad.net/",
- ftpWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- httpDistMirror => "http://tor.blingblingsquad.net/dist/",
- httpsDistMirror => "https://tor.blingblingsquad.net/dist/",
- rsyncDistMirror => ""
- },
-
- mirror006 => {
- adminContact => "BarkerJr AT barkerjr DOT net",
- orgName => "BarkerJr",
- isoCC => "US",
- subRegion => "",
- region => "US",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://www.torproject.us/",
- httpsWebsiteMirror => "https://www.torproject.us/",
- rsyncWebsiteMirror => "rsync://rsync.torproject.us/tor",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://www.torproject.us/dist/",
- httpsDistMirror => "https://www.torproject.us/dist/",
- rsyncDistMirror => "rsync://rsync.torproject.us/tor/dist",
- hiddenServiceMirror => ""
- },
-
- mirror007 => {
- adminContact => "info AT zentrum-der-gesundheit DOT de",
- orgName => "Zentrum der Gesundheit",
- isoCC => "DK",
- subRegion => "",
- region => "Europe",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "Unknown",
- httpWebsiteMirror => "http://tor.idnr.ws/",
- ftpWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- httpDistMirror => "http://tor.idnr.ws/dist/",
- rsyncDistMirror => ""
- },
-
- mirror008 => {
- adminContact => "root AT amorphis DOT eu",
- orgName => "Amorphis",
- isoCC => "NL",
- subRegion => "",
- region => "Europe",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "Unknown",
- httpWebsiteMirror => "http://tor.amorphis.eu/",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://tor.amorphis.eu/dist/",
- rsyncDistMirror => ""
- },
- mirror010 => {
- adminContact => "webmaster AT ccc DOT de",
- orgName => "CCC",
- isoCC => "NL",
- subRegion => "",
- region => "Europe",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "Unknown",
- httpWebsiteMirror => "http://tor.ccc.de/",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://tor.ccc.de/dist/",
- rsyncDistMirror => ""
- },
-
- mirror013 => {
- adminContact => "hostmaster AT zombiewerks DOT com",
- orgName => "TheOnionRouter",
- isoCC => "IS",
- subRegion => "",
- region => "Iceland",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "Unknown",
- httpWebsiteMirror => "http://theonionrouter.com/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://theonionrouter.com/dist/",
- httpsDistMirror => "",
- rsyncDistMirror => ""
- },
- mirror014 => {
- adminContact => "tormaster AT xpdm DOT us",
- orgName => "Xpdm",
- isoCC => "US",
- subRegion => "",
- region => "North America",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "Unknown",
- httpWebsiteMirror => "http://torproj.xpdm.us/",
- httpsWebsiteMirror => "https://torproj.xpdm.us/",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://torproj.xpdm.us/dist/",
- httpsDistMirror => "https://torproj.xpdm.us/dist/",
- rsyncDistMirror => "",
- hiddenServiceMirror => "http://h3prhz46uktgm4tt.onion/"
- },
- mirror016 => {
- adminContact => "security AT hostoffice DOT hu",
- orgName => "Unknown",
- isoCC => "HU",
- subRegion => "Hungary",
- region => "Europe",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://mirror.tor.hu/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://mirror.tor.hu/dist/",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => ""
- },
- mirror018 => {
- adminContact => "",
- orgName => "chaos darmstadt",
- isoCC => "DE",
- subRegion => "Germany",
- region => "Europe",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://mirrors.chaos-darmstadt.de/tor-mirror/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://mirrors.chaos-darmstadt.de/tor-mirror/dist/",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => ""
- },
-
- mirror019 => {
- adminContact => "webmaster AT askapache DOT com",
- orgName => "AskApache",
- isoCC => "US",
- subRegion => "California",
- region => "US",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://tor.askapache.com/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://tor.askapache.com/dist/",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => ""
- },
-
- mirror020 => {
- adminContact => " mail AT benjamin-meier DOT info ",
- orgName => "beme it",
- isoCC => "DE",
- subRegion => "",
- region => "DE",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://tor.beme-it.de/",
- httpsWebsiteMirror => "https://tor.beme-it.de/",
- rsyncWebsiteMirror => "rsync://tor.beme-it.de/tor",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://tor.beme-it.de/dist/",
- httpsDistMirror => "https://tor.beme-it.de/dist/",
- rsyncDistMirror => "rsync://tor.beme-it.de/tor/dist",
- hiddenServiceMirror => ""
- },
-
- mirror021 => {
- adminContact => "",
- orgName => "India Tor Fans",
- isoCC => "IN",
- subRegion => "",
- region => "IN",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://www.torproject.org.in/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://www.torproject.org.in/dist/",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => ""
- },
-
- mirror024 => {
- adminContact => "",
- orgName => "homosu",
- isoCC => "SE",
- subRegion => "",
- region => "SE",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://tor.homosu.net/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://tor.homosu.net/dist/",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => ""
- },
-
- mirror025 => {
- adminContact => "margus.random at mail.ee",
- orgName => "CyberSIDE",
- isoCC => "EE",
- subRegion => "",
- region => "EE",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://cyberside.planet.ee/tor/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://cyberside.net.ee/tor/",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => ""
- },
-
- mirror028 => {
- adminContact => "",
- orgName => "NW Linux",
- isoCC => "US",
- subRegion => "WA",
- region => "US",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://torproject.nwlinux.us/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "rsync://nwlinux.us/tor-web",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://torproject.nwlinux.us/dist/",
- httpsDistMirror => "",
- rsyncDistMirror => "rsync://nwlinux.us/tor-dist",
- hiddenServiceMirror => "",
- },
- mirror029 => {
- adminContact => "",
- orgName => "LazyTiger",
- isoCC => "FR",
- subRegion => "",
- region => "FR",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://tor.taiga-san.net/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://tor.taiga-san.net/dist/",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => "",
- },
- mirror030 => {
- adminContact => "",
- orgName => "searchprivate",
- isoCC => "US",
- subRegion => "TX",
- region => "US",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://tor.searchprivate.com/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://tor.searchprivate.com/dist/",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => "",
- },
- mirror031 => {
- adminContact => "",
- orgName => "cyberarmy",
- isoCC => "AT",
- subRegion => "",
- region => "AT",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://tor.cyberarmy.at/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => "",
- },
- mirror032 => {
- adminContact => "",
- orgName => "torproject.is",
- isoCC => "IS",
- subRegion => "",
- region => "IS",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://torproject.is/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://torproject.is/dist/",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => "",
- },
- mirror033 => {
- adminContact => "",
- orgName => "torservers",
- isoCC => "DE",
- subRegion => "",
- region => "DE",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://www.torservers.net/mirrors/torproject.org/",
- httpsWebsiteMirror => "https://www.torservers.net/mirrors/torproject.org/",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://www.torservers.net/mirrors/torproject.org/dist/",
- httpsDistMirror => "https://www.torservers.net/mirrors/torproject.org/dist/",
- rsyncDistMirror => "",
- hiddenServiceMirror => "http://hbpvnydyyjbmhx6b.onion/mirrors/torproject.org/",
- },
- mirror036 => {
- adminContact => "",
- orgName => "",
- isoCC => "NL",
- subRegion => "",
- region => "NL",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "",
- httpsDistMirror => "https://www.coevoet.nl/tor/dist/",
- rsyncDistMirror => "",
- hiddenServiceMirror => "",
- },
- mirror038 => {
- adminContact => "",
- orgName => "",
- isoCC => "LT",
- subRegion => "",
- region => "LT",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://tor.vesta.nu/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://tor.vesta.nu/dist/",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => "",
- },
- mirror045 => {
- adminContact => "",
- orgName => "",
- isoCC => "TN",
- subRegion => "",
- region => "TN",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://tor.mirror.tn/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://tor.mirror.tn/dist/",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => "",
- },
- mirror045 => {
- adminContact => "",
- orgName => "",
- isoCC => "TN",
- subRegion => "",
- region => "TN",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://torproject.antagonism.org/",
- httpsWebsiteMirror => "https://torproject.antagonism.org/",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => "",
- },
- mirror048 => {
- adminContact => "",
- orgName => "",
- isoCC => "AT",
- subRegion => "",
- region => "AT",
- ipv4 => "True",
- ipv6 => "True",
- loadBalanced => "No",
- httpWebsiteMirror => "http://tor.dont-know-me.at/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://tor.dont-know-me.at/dist/",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => "",
- },
- mirror049 => {
- adminContact => "IceBear",
- orgName => "myRL.net",
- isoCC => "IS",
- subRegion => "",
- region => "IS",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://tor.myrl.net/",
- httpsWebsiteMirror => "https://tor.myrl.net/",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://tor.myrl.net/dist/",
- httpsDistMirror => "https://tor.myrl.net/dist/",
- rsyncDistMirror => "",
- hiddenServiceMirror => "",
- },
- mirror050 => {
- adminContact => "",
- orgName => "borgmann.tv",
- isoCC => "DE",
- subRegion => "",
- region => "DE",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://tor.borgmann.tv/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://tor.borgmann.tv/dist/",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => "",
- },
- mirror051 => {
- adminContact => "",
- orgName => "torland",
- isoCC => "GB",
- subRegion => "",
- region => "GB",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://mirror.torland.me/torproject.org/",
- httpsWebsiteMirror => "https://mirror.torland.me/torproject.org/",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://mirror.torland.me/torproject.org/dist/",
- httpsDistMirror => "https://mirror.torland.me/torproject.org/dist/",
- rsyncDistMirror => "",
- hiddenServiceMirror => "",
- },
- mirror052 => {
- adminContact => "",
- orgName => "spline",
- isoCC => "DE",
- subRegion => "",
- region => "DE",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://tor.spline.de/",
- httpsWebsiteMirror => "https://tor.spline.inf.fu-berlin.de/",
- rsyncWebsiteMirror => "rsync://ftp.spline.de/tor",
- ftpWebsiteMirror => "ftp://ftp.spline.de/pub/tor",
- httpDistMirror => "http://tor.spline.de/dist/",
- httpsDistMirror => "https://tor.spline.inf.fu-berlin.de/dist/",
- rsyncDistMirror => "rsync://ftp.spline.de/tor/dist",
- hiddenServiceMirror => "",
- },
- mirror053 => {
- adminContact => "",
- orgName => "",
- isoCC => "AT",
- subRegion => "",
- region => "AT",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://torproject.ph3x.at/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://torproject.ph3x.at/dist/",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => "",
- },
- mirror054 => {
- adminContact => "",
- orgName => "hessmo",
- isoCC => "US",
- subRegion => "",
- region => "US",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://mirror.hessmo.com/tor/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://mirror.hessmo.com/tor/dist/",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => "",
- },
- mirror058 => {
- adminContact => "",
- orgName => "",
- isoCC => "US",
- subRegion => "",
- region => "US",
- ipv4 => "True",
- ipv6 => "True",
- loadBalanced => "No",
- httpWebsiteMirror => "http://tor.loritsu.com/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://tor.loritsu.com/dist/",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => "",
- },
- mirror060 => {
- adminContact => "",
- orgName => "",
- isoCC => "DE",
- subRegion => "",
- region => "DE",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://torproject.cryptowars.info/",
- httpsWebsiteMirror => "https://torproject.cryptowars.info/",
- rsyncWebsiteMirror => "rsync://torproject.cryptowars.info/",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://torproject.cryptowars.info/dist/",
- httpsDistMirror => "https://torproject.cryptowars.info/dist/",
- rsyncDistMirror => "",
- hiddenServiceMirror => "",
- },
- mirror062 => {
- adminContact => "",
- orgName => "",
- isoCC => "DE",
- subRegion => "",
- region => "DE",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://tor.dev-random.de/",
- httpsWebsiteMirror => "https://tor.dev-random.de/",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://tor.dev-random.de/dist/",
- httpsDistMirror => "https://tor.dev-random.de/dist/",
- rsyncDistMirror => "",
- hiddenServiceMirror => "",
- },
- mirror063 => {
- adminContact => "",
- orgName => "crazyhaze.de",
- isoCC => "DE",
- subRegion => "",
- region => "DE",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://tor.crazyhaze.de/",
- httpsWebsiteMirror => "https://tor.crazyhaze.de/",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://tor.crazyhaze.de/dist/",
- httpsDistMirror => "https://tor.crazyhaze.de/dist/",
- rsyncDistMirror => "",
- hiddenServiceMirror => "",
- },
- mirror066 => {
- adminContact => "",
- orgName => "Lightning-bolt.net",
- isoCC => "CZ",
- subRegion => "",
- region => "CZ",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://torproject.lightning-bolt.net/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://torproject.lightning-bolt.net/dist/",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => "",
- },
- mirror067 => {
- adminContact => "",
- orgName => "",
- isoCC => "US",
- subRegion => "",
- region => "US",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://tor.mirrors.whitedholdings.org/",
- httpsWebsiteMirror => "https://tor.mirrors.whitedholdings.org/",
- rsyncWebsiteMirror => "rsync://mirrors.whitedholdings.org/tor",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://tor.mirrors.whitedholdings.org/dist/",
- httpsDistMirror => "https://tor.mirrors.whitedholdings.org/dist/",
- rsyncDistMirror => "rsync://tor.mirrors.whitedholdings.org/tor-dist",
- hiddenServiceMirror => "",
- },
- mirror069 => {
- adminContact => "",
- orgName => "",
- isoCC => "FR",
- subRegion => "",
- region => "FR",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://tor.mirror.chekanov.net/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://tor.mirror.chekanov.net/dist/",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => "",
- },
- mirror072 => {
- adminContact => "",
- orgName => "",
- isoCC => "US",
- subRegion => "",
- region => "US",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://tor.minibofh.org/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://tor.minibofh.org/dist/",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => "",
- },
- mirror073 => {
- adminContact => "",
- orgName => "",
- isoCC => "UA",
- subRegion => "",
- region => "UA",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://torua.reactor-xg.kiev.ua/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://torua.reactor-xg.kiev.ua/dist/",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => "",
- },
- mirror075 => {
- adminContact => "",
- orgName => "me0w.cc",
- isoCC => "RO",
- subRegion => "",
- region => "RO",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://tor.me0w.cc/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://tor.me0w.cc/dist/",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => "",
- },
- mirror076 => {
- adminContact => "",
- orgName => "",
- isoCC => "US",
- subRegion => "",
- region => "US",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://mirror.nametoday.me/tor/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://mirror.nametoday.me/tor/dist/",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => "",
- },
- mirror077 => {
- adminContact => "",
- orgName => "",
- isoCC => "UK",
- subRegion => "",
- region => "UK",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://tor.mage.me.uk/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://tor.mage.me.uk/dist/",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => "",
- },
- mirror078 => {
- adminContact => "",
- orgName => "",
- isoCC => "CH",
- subRegion => "",
- region => "CH",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://torproject.pillo-srv.ch/",
- httpsWebsiteMirror => "https://torproject.pillo-srv.ch/",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://torproject.pillo-srv.ch/dist/",
- httpsDistMirror => "https://torproject.pillo-srv.ch/dist/",
- rsyncDistMirror => "",
- hiddenServiceMirror => "",
- },
- mirror079 => {
- adminContact => "",
- orgName => "",
- isoCC => "LU",
- subRegion => "",
- region => "LU",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://torproject.adamas.ai/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://torproject.adamas.ai/dist/",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => "",
- },
- mirror080 => {
- adminContact => "",
- orgName => "",
- isoCC => "FR",
- subRegion => "",
- region => "FR",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://torproject.c3l.lu/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://torproject.c3l.lu/dist/",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => "",
- },
- mirror081 => {
- adminContact => "",
- orgName => "",
- isoCC => "EE",
- subRegion => "",
- region => "EE",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://tor.li/",
- httpsWebsiteMirror => "https://tor.li/",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://tor.li/dist/",
- httpsDistMirror => "https://tor.li/dist/",
- rsyncDistMirror => "",
- hiddenServiceMirror => "",
- },
- mirror082 => {
- adminContact => "",
- orgName => "",
- isoCC => "US",
- subRegion => "",
- region => "US",
- ipv4 => "True",
- ipv6 => "True",
- loadBalanced => "No",
- httpWebsiteMirror => "http://mirror.nametoday.me/tor/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://mirror.nametoday.me/tor/dist/",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => "",
- },
- mirror085 => {
- adminContact => "",
- orgName => "Soviet Anonymous",
- isoCC => "RU",
- subRegion => "",
- region => "RU",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://creep.im/tor",
- httpsWebsiteMirror => "https://creep.im/tor",
- rsyncWebsiteMirror => "rsync://creep.im/tor",
- ftpWebsiteMirror => "ftp://creep.im/mirrors/tor",
- httpDistMirror => "http://creep.im/tor/dist/",
- httpsDistMirror => "https://creep.im/tor/dist/",
- rsyncDistMirror => "rsync://creep.im/tor-dist",
- hiddenServiceMirror => "",
- },
- mirror086 => {
- adminContact => "",
- orgName => "",
- isoCC => "US",
- subRegion => "",
- region => "US",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://199.175.55.215/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://199.175.55.215/dist/",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => "",
- },
- mirror087 => {
- adminContact => "",
- orgName => "",
- isoCC => "DE",
- subRegion => "",
- region => "DE",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://tor.linuxlounge.net/",
- httpsWebsiteMirror => "https://tor.linuxlounge.net/",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://tor.linuxlounge.net/dist/",
- httpsDistMirror => "https://tor.linuxlounge.net/dist/",
- rsyncDistMirror => "",
- hiddenServiceMirror => "",
- },
- mirror088 => {
- adminContact => "",
- orgName => "",
- isoCC => "US",
- subRegion => "",
- region => "US",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "ftp://mirrors.go-parts.com/tor/",
- httpDistMirror => "http://mirrors.go-parts.com/tor/dist/",
- httpsDistMirror => "",
- rsyncDistMirror => "rsync://mirrors.go-parts.com/mirrors/tor/",
- hiddenServiceMirror => "",
- },
- mirror089 => {
- adminContact => "",
- orgName => "",
- isoCC => "US",
- subRegion => "",
- region => "US",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://www.netgull.com/torproject/",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => "",
- },
- mirror090 => {
- adminContact => "",
- orgName => "",
- isoCC => "US",
- subRegion => "",
- region => "US",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://torproject.guilhem.org/",
- httpsWebsiteMirror => "https://torproject.guilhem.org/",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://torproject.guilhem.org/dist/",
- httpsDistMirror => "https://torproject.guilhem.org/dist/",
- rsyncDistMirror => "",
- hiddenServiceMirror => "",
- },
- mirror091 => {
- adminContact => "",
- orgName => "",
- isoCC => "MX",
- subRegion => "",
- region => "MX",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://fbnaia.homelinux.net/torproject/",
- httpsWebsiteMirror => "https://fbnaia.homelinux.net/torproject/",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://fbnaia.homelinux.net/torproject/dist/",
- httpsDistMirror => "https://fbnaia.homelinux.net/torproject//dist/",
- rsyncDistMirror => "",
- hiddenServiceMirror => "",
- },
- mirror092 => {
- adminContact => "hackthissite.org",
- orgName => "HackThisSite.org",
- isoCC => "US",
- subRegion => "",
- region => "US",
- ipv4 => "True",
- ipv6 => "True",
- loadBalanced => "No",
- httpWebsiteMirror => "http://tor.hackthissite.org/",
- httpsWebsiteMirror => "https://tor.hackthissite.org/",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://mirror.hackthissite.org/tor",
- httpsDistMirror => "https://mirror.hackthissite.org/tor",
- rsyncDistMirror => "",
- hiddenServiceMirror => ""
- },
- mirror093 => {
- adminContact => "http://sebastian.pfeifer.or.at/",
- orgName => "TechAsk.IT",
- isoCC => "AT",
- subRegion => "Favoriten",
- region => "Wien",
- ipv4 => "True",
- ipv6 => "True",
- loadBalanced => "No",
- httpWebsiteMirror => "http://www.unicorncloud.org/public/torproject.org/",
- httpsWebsiteMirror => "https://www.unicorncloud.org/public/torproject.org/",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://www.unicorncloud.org/public/torproject.org/dist",
- httpsDistMirror => "https://www.unicorncloud.org/public/torproject.org/dist",
- rsyncDistMirror => "",
- hiddenServiceMirror => ""
- },
- mirror094 => {
- adminContact =>"http://www.multinet.no",
- orgName => "MultiNet AS",
- isoCC => "NO",
- subRegion => "Trondheim",
- region => "Trondheim",
- ipv4 => "True",
- ipv6 => "True",
- loadBalanced => "No",
- httpWebsiteMirror =>"http://tor.multinet.no/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror =>"http://tor.multinet.no/dist/",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => ""
- },
- mirror095 => {
- adminContact => "mirror-admin\(a)linsrv.net",
- orgName => "linsrv",
- isoCC => "FR",
- subRegion => "France",
- region => "Europe",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://mirrors.linsrv.net/torproject/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "mirrors.linsrv.net::pub/torproject",
- ftpWebsiteMirror => "ftp://ftp.linsrv.net/pub/torproject/",
- httpDistMirror => "http://mirrors.linsrv.net/torproject/dist/",
- httpsDistMirror => "",
- rsyncDistMirror => "mirrors.linsrv.net::pub/torproject/dist",
- hiddenServiceMirror => ""
- },
- mirror096 => {
- adminContact => "webmaster AT bbln DOT nl",
- orgName => "BBLN.nl",
- isoCC => "NL",
- subRegion => "The Netherlands",
- region => "Europe",
- ipv4 => "True",
- ipv6 => "True",
- loadBalanced => "No",
- httpWebsiteMirror => "http://mirror.bbln.nl/tor/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://mirror.bbln.nl/tor/dist/",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => ""
- },
- mirror097 => {
- adminContact => "marz.michael at gmail.com",
- orgName => "",
- isoCC => "DE",
- subRegion => "",
- region => "",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://tor.taskserver.de/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => ""
- },
- mirror098 => {
- adminContact => "",
- orgName => "",
- isoCC => "FR",
- subRegion => "",
- region => "",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://37.187.0.127/tormirror/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://37.187.0.127/tormirror/dist/",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => ""
- },
- mirror099 => {
- adminContact => "paul at coffswifi.net",
- orgName => "CoffsWiFi",
- isoCC => "AU",
- subRegion => "Australia and New Zealand",
- region => "APNIC",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://torproject.coffswifi.net",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://torproject.coffswifi.net/dist",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => ""
- },
- mirror100 => {
- adminContact => "nsane2307 /AT\ eml /DOT\ cc",
- orgName => "",
- isoCC => "DE",
- subRegion => "Germany",
- region => "Europe",
- ipv4 => "True",
- ipv6 => "False",
- loadBalanced => "No",
- httpWebsiteMirror => "http://144.76.105.110/mirrors/torproject.org/",
- httpsWebsiteMirror => "",
- rsyncWebsiteMirror => "",
- ftpWebsiteMirror => "",
- httpDistMirror => "http://144.76.105.110/mirrors/torproject.org/dist/",
- httpsDistMirror => "",
- rsyncDistMirror => "",
- hiddenServiceMirror => ""
- }
-
-);
-
-my $count = values %m;
-print "We have a total of $count mirrors\n";
-print "Fetching the last updated date for each mirror.\n";
-
-my $tortime;
-$tortime = FetchDate("https://www.torproject.org/");
-# Adjust offical Tor time by out-of-date offset: number of days * seconds per day
-$tortime -= 1 * 172800;
-print "The official time for Tor is $tortime. \n";
-
-foreach my $server ( keys %m ) {
-
- print "Attempting to fetch from $m{$server}{'orgName'}\n";
-
- if ($m{$server}{'httpWebsiteMirror'}) {
- print "Attempt to fetch via HTTP.\n";
- $m{$server}{"updateDate"} = FetchDate("$m{$server}{'httpWebsiteMirror'}");
- } elsif ($m{$server}{'httpsWebsiteMirror'}) {
- print "Attempt to fetch via HTTPS.\n";
- $m{$server}{"updateDate"} = FetchDate("$m{$server}{'httpsWebsiteMirror'}");
- } elsif ($m{$server}{'ftpWebsiteMirror'}) {
- print "Attempt to fetch via FTP.\n";
- $m{$server}{"updateDate"} = FetchDate("$m{$server}{'ftpWebsiteMirror'}");
- } else {
- print "We were unable to fetch or store anything. We still have the following: $m{$server}{'updateDate'}\n";
- }
-
- print "We fetched and stored the following: $m{$server}{'updateDate'}\n";
-
- }
-
-
-print "We sorted the following mirrors by their date of last update: \n";
-foreach my $server ( sort { $m{$b}{'updateDate'} <=> $m{$a}{'updateDate'}} keys %m ) {
-
- print "\n";
- print "Mirror $m{$server}{'orgName'}: \n";
-
- foreach my $attrib ( sort keys %{$m{$server}} ) {
- print "$attrib = $m{$server}{$attrib}";
- print "\n";
- };
-}
-
-my $outFile = "include/mirrors-table.wmi";
-my $html;
-open(OUT, "> $outFile") or die "Can't open $outFile: $!";
-
-# Here's where we open a file and print some wml include goodness
-# This is storted from last known recent update to unknown update times
-foreach my $server ( sort { $m{$b}{'updateDate'} <=> $m{$a}{'updateDate'}} keys %m ) {
-
- my $time;
- if ( "$m{$server}{'updateDate'}" ne "Unknown") {
- if ( $m{$server}{'updateDate'} > $tortime ) {
- $time = "Up to date";
- } else { $time = "DO NOT USE. Out of date."; }
- } else { $time = "Unknown"; }
-print OUT <<"END";
- \n<tr>\n
- <td>$m{$server}{'isoCC'}</td>\n
- <td>$m{$server}{'orgName'}</td>\n
- <td>$time</td>\n
-END
-
- my %prettyNames = (
- httpWebsiteMirror => "http",
- httpsWebsiteMirror => "https",
- ftpWebsiteMirror => "ftp",
- rsyncWebsiteMirror => "rsync",
- httpDistMirror => "http",
- httpsDistMirror => "https",
- rsyncDistMirror => "rsync", );
-
- foreach my $precious ( sort keys %prettyNames )
- {
- if ($m{$server}{"$precious"}) {
- print OUT " <td><a href=\"" . $m{$server}{$precious} . "\">" .
- "$prettyNames{$precious}</a></td>\n";
- } else { print OUT " <td> - </td>\n"; }
- }
-
- print OUT "</tr>\n";
-}
-
-close(OUT);
Deleted: website/wml2po.sh
===================================================================
--- website/wml2po.sh 2013-08-24 20:38:20 UTC (rev 26317)
+++ website/wml2po.sh 2013-08-25 11:16:46 UTC (rev 26318)
@@ -1,284 +0,0 @@
-#!/bin/bash
-#
-# Author: Runa Sandvik, <runa.sandvik(a)gmail.com>
-# Google Summer of Code 2009
-#
-# This is Free Software (GPLv3)
-# http://www.gnu.org/licenses/gpl-3.0.txt
-#
-# This script will convert all of the English wml files in
-# https://svn.torproject.org/svn/website/trunk/ to pot files, and
-# keep them updated. The script will also convert subdirectories that
-# exist in the website module.
-#
-# For more information, see the HOWTO and README in
-# translation/tools/gsoc09.
-#
-
-### start config ###
-
-# Location of the wml files
-wmldir="$PWD"
-
-# Location of the pot files.
-# Assuming that the translation directory is relative to the website
-podir="`dirname $wmldir`/translation/projects/website/po/templates"
-
-# Set the copyright holder of the files,
-# for example "The Tor Project, Inc"
-copyright="The Tor Project, Inc"
-
-# A lot of the wml files have custom tags. These tags have been defined
-# in website/include/versions.wmi. Tags that people usually forget to close,
-# as well as tags that are not defined in versions.wmi, have been added.
-# See: https://svn.torproject.org/svn/website/trunk/include/versions.wmi
-customtag=`echo $(cat "$wmldir/include/versions.wmi" | awk '{ printf "<%s> " , $2 }' | sed 's/<>//g') "<svnsandbox> <svnwebsite> <svnprojects> <input> <hr> <br> <img> <gitblob> <package-androidbundle-alpha> <version-androidbundle-tor> <video controls> <wiki>"`
-
-# We also need to use the nodefault option of po4a; space separated list
-# of tags that the module should not try to set by default in any
-# category. For now, we only need the input tag.
-nodefault='<input>'
-
-# The script can write the name of unprocessed files to a log.
-# If you want to enable this option, set the logfile here.
-logfile=""
-
-# This is the temp logfile. Leave this line even if you don't want to
-# log. This will be deleted when the script is done.
-tmplog="`dirname $wmldir`/tmp.log"
-
-### end config ###
-
-# Create a lockfile to make sure that only one instance of the script
-# can run at any time.
-LOCKFILE=wml2po.lock
-
-if lockfile -! -l 60 -r 3 "$LOCKFILE";
-then
- echo "unable to acquire lock" >2
- exit 1
-fi
-
-trap "rm -f '$PWD/$LOCKFILE'" exit
-
-# Check if translation/projects/website exist, i.e. has been checked out
-if [ ! -d $podir ]
-then
- echo "Have you remembered to check out translation/projects/website?"
- exit 1
-fi
-
-# If the logfile is set, write the date.
-if [ $logfile ]
-then
- echo `date` > $logfile
-fi
-
-# Create the temp log
-touch $tmplog
-
-# We only need the English wml files, but we do not wish to translate
-# the eff documents.
-wml=`find $wmldir -regex '^'$wmldir'/.*en/.*\.wml' -type f | grep -v '^'$wmldir'/eff'`
-
-# For every English wml, see if the pot needs to be created or updated
-for file in $wml ; do
-
- # Get the basename of the file we are dealing with
- wmlfile=`basename $file`
-
- # Get the translation priority
- priority=`cat $file | grep "# Translation-Priority" | awk '{print $3}'`
-
- # If the file doesn't have a translation-priority, we can assume
- # that it doesn't need to be translated. Skip this file and
- # continue on with the next.
- if [ ! $priority ]
- then
- continue
- fi
-
- # Strip the file for its original extension and add .pot
- pofile="$priority.${wmlfile%%.*}.pot"
-
- # Find out what directory the file is in.
- # Also, remove the part of the path that is $wmldir
- indir=`dirname $file`
-
- # We need to know what one dir up is
- onedirup=`dirname $indir | sed "s#$wmldir/##"`
-
- # We need to have the correct, full path to the pot
- # directory for the file we are working on.
- # Also, did the subdirectory exist prior to running this
- # script? If not, create it now and add it to the
- # repository.
- if [ $onedirup = $wmldir ]
- then
- popath="$podir"
- else
-
- # We need to know if a subdirectory, such as torbutton,
- # exist in the translation module. If it does not exist,
- # the script will create it in all the directories under
- # translation/projects/website (excluding .svn)
- subdir=`find "$podir" -maxdepth 1 -type d ! -path "$ppodir" ! -path "*\.*"`
-
- for dir in $subdir ; do
- if [ ! -d "$podir/$onedirup" ]
- then
- svn mkdir "$podir/$onedirup"
- fi
- done
-
- # Set the path
- popath="$podir/$onedirup"
-
- fi
-
- # Check to see if the pot existed prior to running this
- # script. If it didn't, check if there any files with the same
- # filename, but different priority. If neither of the files
- # exist, create with po4a-gettextize.
- if [ -e "$popath/$pofile" ]
- then
- poexist=1
- elif [ `find $popath -type f -name "*.$filename" | wc -l` -gt "0" ]
- then
- poexist=2
-
- # We need to rename the other file
- for file in `find $popath -type f -name "*.$filename"` ; do
- svn mv "$file" "$popath/$pofile"
- echo "$popath/$pofile" > $tmplog
- done
-
- else
- poexist=0
- fi
-
- # If the pot file does not exist, convert it with
- # po4a-gettextize, set the right encoding and charset
- # and the correct copyright.
- if [ $poexist = 0 ]
- then
- # Do something special for download.wml and its js
- if [ $wmlfile = "download.wml" ]
- then
- po4a-gettextize -f wml -m "$file" -p "$popath/$pofile" --master-charset utf-8 -o customtag="$customtag" -o nodefault="$nodefault" -o ontagerror="silent"
- else
- # Convert it
- po4a-gettextize -f wml -m "$file" -p "$popath/$pofile" --master-charset utf-8 -o customtag="$customtag" -o nodefault="$nodefault"
- fi
-
- # Check to see if the file exists
- if [ -e "$popath/$pofile" ]
- then
- # We don't want files without
- # content, so check the file first.
- content=`cat "$popath/$pofile" | grep '^#[.]' | wc -l`
-
- # If the file does not have any
- # content, delete it.
- if [ $content = 0 ]
- then
- rm -f "$popath/$pofile"
- echo "$popath/$pofile" > $tmplog
- else
- # Set the right encoding and charset, as well
- # as the correct copyright holder.
- sed -i '0,/ENCODING/ s/ENCODING/8bit/' "$popath/$pofile"
- sed -i '0,/CHARSET/ s/CHARSET/utf-8/' "$popath/$pofile"
- sed -i "0,/Free Software Foundation, Inc/ s/Free Software Foundation, Inc/$copyright/" "$popath/$pofile"
-
- # And add it to the repository
- svn add "$popath/$pofile"
- echo "$popath/$pofile" > $tmplog
- fi
-
- # Remove po4a comments from download.wml
- if [ $wmlfile = "download.wml" ]
- then
- sed -i 's/PO4ASHARPEND-->//g' "$popath/$pofile"
- fi
- fi
-
- # Update the file with po4a-updatepo to make the
- # word wrapping perfect
- if [ $wmlfile = "download.wml" ]
- then
- po4a-updatepo -f wml -m "$file" -p "$popath/$pofile" --master-charset utf-8 -o customtag="$customtag" -o nodefault="$nodefault" -o ontagerror="silent"
- else
- po4a-updatepo -f wml -m "$file" -p "$popath/$pofile" --master-charset utf-8 -o customtag="$customtag" -o nodefault="$nodefault"
- fi
-
- # Delete the backup
- rm -f "$popath/$pofile~"
- fi
-
- # If the pot file does exist, calculate the hash first,
- # then update the file, then calculate the hash again.
- if [ $poexist = 1 ]
- then
- # Calculate the hash before we update the file
- before=`grep -vE '^("POT-Creation-Date:|#)' "$popath/$pofile" | md5sum | cut -d " " -f1`
-
- # Update the pot file
- if [ $wmlfile = "download.wml" ]
- then
- po4a-updatepo -f wml -m "$file" -p "$popath/$pofile" --master-charset utf-8 -o customtag="$customtag" -o nodefault="$nodefault" -o ontagerror="silent"
- else
- po4a-updatepo -f wml -m "$file" -p "$popath/$pofile" --master-charset utf-8 -o customtag="$customtag" -o nodefault="$nodefault"
- fi
-
- # Calculate the new hash
- after=`grep -vE '^("POT-Creation-Date:|#)' "$popath/$pofile" | md5sum | cut -d " " -f1`
-
- # Delete the backup
- rm -f "$popath/$pofile~"
-
- # Now we need to compare the before and after
- # hash. If they match (i.e. nothing has
- # changed), revert the file.
- if [ $before = $after ]
- then
- svn revert "$popath/$pofile"
- echo "$popath/$pofile" > $tmplog
- else
- echo "$popath/$pofile" > $tmplog
-
- if [ $wmlfile = "download.wml" ]
- then
- sed -i 's/PO4ASHARPEND-->//g' "$popath/$pofile"
- fi
-
- fi
- fi
-
- # If a file with the same name but different priority
- # exist, then rename the file (we have done so already)
- # and update it with po4a-updatepo to make sure
- # everything else is ok.
- if [ $poexist = 2 ]
- then
- # Update the file
- if [ $wmlfile = "download.wml" ]
- then
- po4a-updatepo -f wml -m "$file" -p "$popath/$pofile" --master-charset utf-8 -o customtag="$customtag" -o nodefault="$nodefault" -o ontagerror="silent"
- else
- po4a-updatepo -f wml -m "$file" -p "$popath/$pofile" --master-charset utf-8 -o customtag="$customtag" -o nodefault="$nodefault"
- fi
- fi
-
- # Write to the logfile
- if [ -e $logfile ]
- then
- if [ `cat $tmplog | grep "$popath/$pofile" | wc -l` -eq "0" ]
- then
- echo "could not process: " "$file" >> $logfile
- fi
- fi
-
- # Delete the temp log
- rm -f $tmplog
-done
1
0

[translation/torbirdy_completed] Update translations for torbirdy_completed
by translation@torproject.org 25 Aug '13
by translation@torproject.org 25 Aug '13
25 Aug '13
commit ddff886ea8a2d66f7311caff44cd17a23ac48718
Author: Translation commit bot <translation(a)torproject.org>
Date: Sun Aug 25 08:46:37 2013 +0000
Update translations for torbirdy_completed
---
lv/torbirdy.properties | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/lv/torbirdy.properties b/lv/torbirdy.properties
index aefe8c5..4b1e8e3 100644
--- a/lv/torbirdy.properties
+++ b/lv/torbirdy.properties
@@ -7,13 +7,13 @@ torbirdy.enabled.torification=TorBirdy iespējots: Pārredzama torifikācija
torbirdy.enabled.whonix=TorBirdy ir iespējots: Whonix
torbirdy.disabled=TorBirdy: Atspējots!
-torbirdy.email.prompt=TorBirdy atspējoja Thunderbird'a auto-konfigurācijas vedni, lai aizsargātu jūsu anonimitāti.⏎ ⏎ Ieteiktie drošības uzstādījumi tika uzstādīti priekš %S.⏎ ⏎ Tagad jūs varat manuāli konfigurēt citus konta uzstādījumus.
+torbirdy.email.prompt=TorBirdy atspējoja Thunderbird'a auto-konfigurācijas vedni, lai aizsargātu jūsu anonimitāti.⏎ ⏎ Ieteiktie drošības iestatījumi tika uzstādīti priekš %S.⏎ ⏎ Tagad varat manuāli konfigurēt citus konta iestatījumus.
torbirdy.email.advanced=Lūdzu ņemt vērā, ka TorBirdy lietpratīgo iestatījumu maiņa NAV ieteicama.⏎ ⏎ Jums vajadzētu turpināt tikai tad, ja tiešām zināt, ko darāt.
torbirdy.email.advanced.nextwarning=Nākamreiz rādīt šo brīdinājumu
torbirdy.email.advanced.title=TorBirdy Lietpratīgie iestatījumi
-torbirdy.restart=Jums jāpārstartē Thunderbird, lai laika zonas iestatījumi stātos spēkā.
+torbirdy.restart=Jums jāpārstartē Thunderbird, lai laika zonas preferences stātos spēkā.
-torbirdy.firstrun=Tagad Jūs izpildāt TorBirdy.\n\nLai palīdzētu aizsargāt Jūsu anonimitāti, TorBirdy ieviesīs noteiktos Thunderbird iestatījumus, novēršot to maiņu no Jūsu vai pievienojumu puses. Ir atsevišķi maināmi iestatījumi. Pie tiem var piekļūt no TorBirdy preferenču dialogekrāna. Kad TorBirdy ir atinstalēts vai atspējots, tad visi tā maināmie iestatījumi tiek atiestatīti uz savām noklusējumvērtībām (vērtībām pirms TorBirdy instalācijas).\n\nJa esat jauns, tad iesakām iepazīties ar TorBirdy tīmekļa vietnē ievietotajiem materiāliem, lai saprastu, kādus risinājumus mēs tiecamies sniegt mūsu lietotājiem ar TorBirdy.
+torbirdy.firstrun=Tagad Jūs izpildāt TorBirdy.\n\nLai palīdzētu aizsargāt Jūsu anonimitāti, TorBirdy ieviesīs noteiktos Thunderbird iestatījumus, novēršot to maiņu no Jūsu vai pievienojumu puses. Ir atsevišķi maināmi iestatījumi. Pie tiem var piekļūt no TorBirdy preferenču dialogekrāna. Kad TorBirdy ir atinstalēts vai atspējots, tad visi tā maināmie iestatījumi tiek atiestatīti uz savām noklusējumvērtībām (vērtībām pirms TorBirdy instalācijas).\n\nJa esat jauns lietotājs, tad iesakām iepazīties ar TorBirdy tīmekļa vietnē ievietotajiem materiāliem, lai saprastu, kādus risinājumus mēs tiecamies sniegt mūsu lietotājiem ar TorBirdy.
torbirdy.website=https://trac.torproject.org/projects/tor/wiki/torbirdy
1
0