tbb-commits
Threads by month
- ----- 2025 -----
- 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
December 2019
- 3 participants
- 59 discussions

[torbutton/master] Bug 31855: Remove End of Year Fundraising Campaign from about:tor
by sysrqb@torproject.org 19 Dec '19
by sysrqb@torproject.org 19 Dec '19
19 Dec '19
commit 0e5ac5d22f59487d857fea57dd3db69daf2e56d2
Author: Richard Pospesel <richard(a)torproject.org>
Date: Mon Dec 16 14:10:13 2019 -0800
Bug 31855: Remove End of Year Fundraising Campaign from about:tor
---
LICENSE | 115 ----------------------------
chrome/content/aboutTor/aboutTor-content.js | 18 -----
chrome/content/aboutTor/aboutTor.xhtml | 26 +------
chrome/locale/ar/aboutTor.dtd | 5 --
chrome/locale/bn-BD/aboutTor.dtd | 5 --
chrome/locale/ca/aboutTor.dtd | 5 --
chrome/locale/cs/aboutTor.dtd | 5 --
chrome/locale/da/aboutTor.dtd | 5 --
chrome/locale/de/aboutTor.dtd | 5 --
chrome/locale/el/aboutTor.dtd | 5 --
chrome/locale/en-US/aboutTor.dtd | 5 --
chrome/locale/es-AR/aboutTor.dtd | 5 --
chrome/locale/es-ES/aboutTor.dtd | 5 --
chrome/locale/eu/aboutTor.dtd | 5 --
chrome/locale/fa/aboutTor.dtd | 5 --
chrome/locale/fr/aboutTor.dtd | 5 --
chrome/locale/ga-IE/aboutTor.dtd | 5 --
chrome/locale/he/aboutTor.dtd | 5 --
chrome/locale/hu/aboutTor.dtd | 5 --
chrome/locale/id/aboutTor.dtd | 5 --
chrome/locale/is/aboutTor.dtd | 5 --
chrome/locale/it/aboutTor.dtd | 5 --
chrome/locale/ja/aboutTor.dtd | 5 --
chrome/locale/ka/aboutTor.dtd | 5 --
chrome/locale/ko/aboutTor.dtd | 5 --
chrome/locale/lt/aboutTor.dtd | 5 --
chrome/locale/mk/aboutTor.dtd | 5 --
chrome/locale/ms/aboutTor.dtd | 5 --
chrome/locale/nb-NO/aboutTor.dtd | 5 --
chrome/locale/nl/aboutTor.dtd | 5 --
chrome/locale/pl/aboutTor.dtd | 5 --
chrome/locale/pt-BR/aboutTor.dtd | 5 --
chrome/locale/ro/aboutTor.dtd | 5 --
chrome/locale/ru/aboutTor.dtd | 5 --
chrome/locale/sv-SE/aboutTor.dtd | 5 --
chrome/locale/th/aboutTor.dtd | 5 --
chrome/locale/tr/aboutTor.dtd | 5 --
chrome/locale/vi/aboutTor.dtd | 5 --
chrome/locale/zh-CN/aboutTor.dtd | 5 --
chrome/locale/zh-TW/aboutTor.dtd | 5 --
chrome/skin/Take_Back_Monochrome_purple.png | Bin 117916 -> 0 bytes
chrome/skin/aboutTor.css | 113 +--------------------------
chrome/skin/aboutTorFonts.css | 19 -----
43 files changed, 5 insertions(+), 471 deletions(-)
diff --git a/LICENSE b/LICENSE
index 9c4498df..66c78f65 100644
--- a/LICENSE
+++ b/LICENSE
@@ -27,118 +27,3 @@ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
-
-===============================================================================
-
-"League Gothic" font embedded in chrome/skin/aboutTorFonts.css is licensed
-under:
-
-Copyright (c) 2010, Caroline Hadilaksono & Micah Rich
-<caroline@hadilaksono, micah(a)micahrich.com>, with Reserved Font Name:
-"League Gothic".
-
-This Font Software is licensed under the SIL Open Font License, Version 1.1.
-This license is copied below, and is also available with a FAQ at:
-http://scripts.sil.org/OFL
-
-===============================================================================
-
-'Source' font embedded in chrome/skin/aboutTorFonts.css is licensed under:
-
-Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/) with
-Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of
-Adobe Systems Incorporated in the United States and/or other countries.
-
-This Font Software is licensed under the SIL Open Font License, Version 1.1.
-This license is copied below, and is also available with a FAQ at:
-http://scripts.sil.org/OFL
-
-===============================================================================
-
-SIL OPEN FONT LICENSE
-
-Version 1.1 - 26 February 2007
-
-PREAMBLE
-
-The goals of the Open Font License (OFL) are to stimulate worldwide
-development of collaborative font projects, to support the font creation
-efforts of academic and linguistic communities, and to provide a free and
-open framework in which fonts may be shared and improved in partnership
-with others.
-
-The OFL allows the licensed fonts to be used, studied, modified and
-redistributed freely as long as they are not sold by themselves. The
-fonts, including any derivative works, can be bundled, embedded,
-redistributed and/or sold with any software provided that any reserved
-names are not used by derivative works. The fonts and derivatives,
-however, cannot be released under any other type of license. The
-requirement for fonts to remain under this license does not apply
-to any document created using the fonts or their derivatives.
-DEFINITIONS
-
-"Font Software" refers to the set of files released by the Copyright
-Holder(s) under this license and clearly marked as such. This may
-include source files, build scripts and documentation.
-
-"Reserved Font Name" refers to any names specified as such after the
-copyright statement(s).
-
-"Original Version" refers to the collection of Font Software components as
-distributed by the Copyright Holder(s).
-
-"Modified Version" refers to any derivative made by adding to, deleting,
-or substituting — in part or in whole — any of the components of the
-Original Version, by changing formats or by porting the Font Software to a
-new environment.
-
-"Author" refers to any designer, engineer, programmer, technical
-writer or other person who contributed to the Font Software.
-PERMISSION & CONDITIONS
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of the Font Software, to use, study, copy, merge, embed, modify,
-redistribute, and sell modified and unmodified copies of the Font
-Software, subject to the following conditions:
-
-1) Neither the Font Software nor any of its individual components,
-in Original or Modified Versions, may be sold by itself.
-
-2) Original or Modified Versions of the Font Software may be bundled,
-redistributed and/or sold with any software, provided that each copy
-contains the above copyright notice and this license. These can be
-included either as stand-alone text files, human-readable headers or
-in the appropriate machine-readable metadata fields within text or
-binary files as long as those fields can be easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font
-Name(s) unless explicit written permission is granted by the corresponding
-Copyright Holder. This restriction only applies to the primary font name as
-presented to the users.
-
-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
-Software shall not be used to promote, endorse or advertise any
-Modified Version, except to acknowledge the contribution(s) of the
-Copyright Holder(s) and the Author(s) or with their explicit written
-permission.
-
-5) The Font Software, modified or unmodified, in part or in whole,
-must be distributed entirely under this license, and must not be
-distributed under any other license. The requirement for fonts to
-remain under this license does not apply to any document created
-using the Font Software.
-TERMINATION
-
-This license becomes null and void if any of the above conditions are
-not met.
-DISCLAIMER
-
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
-COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
-OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/chrome/content/aboutTor/aboutTor-content.js b/chrome/content/aboutTor/aboutTor-content.js
index 13aa39da..9dd885fa 100644
--- a/chrome/content/aboutTor/aboutTor-content.js
+++ b/chrome/content/aboutTor/aboutTor-content.js
@@ -127,24 +127,6 @@ var AboutTorListener = {
elem.appendChild(content.document.createTextNode(productName + ' '
+ tbbVersion));
} catch (e) {}
-
- let ey2019_elem_id = "ey2019_donate";
- let ey2019_locale_url =
- `https://www.torproject.org/donate/donate-tbi-${aLocale}`;
-
- if (content.document.body.getAttribute("mobile")) {
- ey2019_elem_id = "ey2019_donate_mobile";
- ey2019_locale_url =
- `https://www.torproject.org/donate/donate-tbi-mobile-${aLocale}`;
- }
-
- content.document
- .getElementById(ey2019_elem_id)
- .setAttribute("href", ey2019_locale_url);
-
- content.document
- .getElementById(ey2019_elem_id + "_bottom")
- .setAttribute("href", ey2019_locale_url);
}
};
diff --git a/chrome/content/aboutTor/aboutTor.xhtml b/chrome/content/aboutTor/aboutTor.xhtml
index 92a941ac..b146fb1b 100644
--- a/chrome/content/aboutTor/aboutTor.xhtml
+++ b/chrome/content/aboutTor/aboutTor.xhtml
@@ -20,12 +20,10 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
- <meta http-equiv="Content-Security-Policy" content="default-src chrome: resource:; script-src chrome: resource: 'unsafe-inline'; font-src data:;" />
+ <meta http-equiv="Content-Security-Policy" content="default-src chrome: resource:; script-src chrome: resource: 'unsafe-inline';" />
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>&aboutTor.title;</title>
<link rel="stylesheet" type="text/css" media="all"
- href="resource://torbutton-assets/aboutTorFonts.css"/>
- <link rel="stylesheet" type="text/css" media="all"
href="resource://torbutton-assets/aboutTor.css"/>
<script type="text/javascript">
<![CDATA[
@@ -36,7 +34,7 @@ window.addEventListener("pageshow", function() {
]]>
</script>
</head>
-<body dir="&locale.dir;" ey2019="yes">
+<body dir="&locale.dir;">
<div class="torcontent-container">
<div id="torbrowser-info">
<div id="torbrowser-version"/>
@@ -44,26 +42,11 @@ window.addEventListener("pageshow", function() {
</div>
<img class="torcontent-logo" src="resource://torbutton-assets/torbrowser_mobile_logo.png"/>
<div id="torstatus" class="top">
- <div class="hideIfTorOff hideIfHasBeenUpdated hideIfEY2019 torstatus-container">
+ <div class="hideIfTorOff hideIfHasBeenUpdated torstatus-container">
<div class="heading1">&aboutTor.ready.label;</div>
<br/>
<div class="heading2">&aboutTor.ready2.label;</div>
</div>
- <div class="hideIfTorOff hideIfHasBeenUpdated showIfEY2019 torstatus-container">
- <div id="ey2019_banner">
- <div id="ey2019_1">
- <p id="ey2019_tracking">&aboutTor.ey2019.tracking;</p>
- </div>
- <div id="ey2019_2">
- <h1 id="ey2019_takeback">&aboutTor.ey2019.takeback;</h1>
- </div>
- <div id="ey2019_3">
- <a id="ey2019_donate" href="https://www.torproject.org/donate/donate-tbi-default">&aboutTor.donationBanner.buttonA;</a>
- <a id="ey2019_donate_mobile" href="https://www.torproject.org/donate/donate-tbi-mobile-default">&aboutTor.donationBanner.buttonA;</a>
- <p id="ey2019_mozilla">&aboutTor.ey2019.mozilla;</p>
- </div>
- </div>
- </div>
<div class="showIfHasBeenUpdated torstatus-container">
<div class="heading1">&aboutTBUpdate.updated;</div>
<br/>
@@ -91,8 +74,7 @@ window.addEventListener("pageshow", function() {
<div id="bottom">
<p id="donate" class="moreInfoLink">&aboutTor.donationBanner.line2e;
- <a id="ey2019_donate_bottom" href="https://www.torproject.org/donate/donate-tbi-default">&aboutTor.donationBanner.buttonA;</a>
- <a id="ey2019_donate_mobile_bottom" href="https://www.torproject.org/donate/donate-tbi-mobile-default">&aboutTor.donationBanner.buttonA;</a>
+ <a href="https://donate.torproject.org/">&aboutTor.donationBanner.buttonA; »</a>
</p>
<p id="manual" class="showForManual moreInfoLink">&aboutTor.torbrowser_user_manual_questions.label;
<a id="manualLink" target="_blank">&aboutTor.torbrowser_user_manual_link.label;</a></p>
diff --git a/chrome/locale/ar/aboutTor.dtd b/chrome/locale/ar/aboutTor.dtd
index d0ca0d2b..610e2f77 100644
--- a/chrome/locale/ar/aboutTor.dtd
+++ b/chrome/locale/ar/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "اشترك للحصول على أخبار تور.">
<!ENTITY aboutTor.donationBanner.line2e "حافظ على قوة تور.">
<!ENTITY aboutTor.donationBanner.buttonA "تبرع الآن">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "تبرع اليوم، وستجاريك موزيلا وتبرع بنفس المبلغ.">
-<!ENTITY aboutTor.ey2019.tracking "ينتشر التّتبُّع والرقابة والحجب على صعيد واسع في الانترنت">
-<!ENTITY aboutTor.ey2019.takeback "استعد السيطرة على الانترنت مع تور Tor">
diff --git a/chrome/locale/bn-BD/aboutTor.dtd b/chrome/locale/bn-BD/aboutTor.dtd
index 2d3feb03..76bc83da 100644
--- a/chrome/locale/bn-BD/aboutTor.dtd
+++ b/chrome/locale/bn-BD/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "টর নিউজ-এর জন্য সাইন আপ করুন ।">
<!ENTITY aboutTor.donationBanner.line2e "টরকে শক্তিশালী রাখুন। ">
<!ENTITY aboutTor.donationBanner.buttonA "এখুনি দান করুন! ">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "অর্থ সাহায্য করুন, এবং মজিলা সমপরিমাণ সাহায্য করবে। ">
-<!ENTITY aboutTor.ey2019.tracking "ট্র্যাকিং, নজরদারি এবং সেন্সরশিপ অনলাইনে ব্যাপক।">
-<!ENTITY aboutTor.ey2019.takeback "Tor দিয়ে ইন্টারনেট আবার ফিরিয়ে নিন">
diff --git a/chrome/locale/ca/aboutTor.dtd b/chrome/locale/ca/aboutTor.dtd
index 55cc87c6..1c3ac654 100644
--- a/chrome/locale/ca/aboutTor.dtd
+++ b/chrome/locale/ca/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "Inscriviu-vos a les noticies de Tor.">
<!ENTITY aboutTor.donationBanner.line2e "Feu que Tor segueixi fort.">
<!ENTITY aboutTor.donationBanner.buttonA "Feu una donació">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "Dóna avui, i Mozilla donarà el mateix import.">
-<!ENTITY aboutTor.ey2019.tracking "El seguiment, la vigilància i la censura en línia estan a l'ordre del dia.">
-<!ENTITY aboutTor.ey2019.takeback "Take back the Internet with Tor">
diff --git a/chrome/locale/cs/aboutTor.dtd b/chrome/locale/cs/aboutTor.dtd
index e28721f7..06e411e5 100644
--- a/chrome/locale/cs/aboutTor.dtd
+++ b/chrome/locale/cs/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "Přihlaste se k odběru zpravodaje Toru.">
<!ENTITY aboutTor.donationBanner.line2e "Pomozte Toru sílit.">
<!ENTITY aboutTor.donationBanner.buttonA "Přispějte">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "Přispějte hned a Mozilla vás dar zdvojnásobí.">
-<!ENTITY aboutTor.ey2019.tracking "Tracking, surveillance, and censorship are widespread online.">
-<!ENTITY aboutTor.ey2019.takeback "Take back the Internet with Tor">
diff --git a/chrome/locale/da/aboutTor.dtd b/chrome/locale/da/aboutTor.dtd
index c461bc15..6fba4caf 100644
--- a/chrome/locale/da/aboutTor.dtd
+++ b/chrome/locale/da/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "Tilmeld Tor-nyheder.">
<!ENTITY aboutTor.donationBanner.line2e "Hold Tor stærk.">
<!ENTITY aboutTor.donationBanner.buttonA "Donér nu">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "Giv i dag, og Mozilla vil matche din donation.">
-<!ENTITY aboutTor.ey2019.tracking "Sporing, overvågning og censur bruges meget online.">
-<!ENTITY aboutTor.ey2019.takeback "Tag internettet tilbage med Tor">
diff --git a/chrome/locale/de/aboutTor.dtd b/chrome/locale/de/aboutTor.dtd
index 2b2493cd..1263d928 100644
--- a/chrome/locale/de/aboutTor.dtd
+++ b/chrome/locale/de/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "Tor-Nachrichten abonnieren.">
<!ENTITY aboutTor.donationBanner.line2e "Mache Tor stark.">
<!ENTITY aboutTor.donationBanner.buttonA "Spende jetzt">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "Gib noch heute, und Mozilla wird deiner Spende entsprechen.">
-<!ENTITY aboutTor.ey2019.tracking "Verfolgung, Überwachung und Zensur sind online weit verbreitet.">
-<!ENTITY aboutTor.ey2019.takeback "Erobere mit Tor das Internet zurück!">
diff --git a/chrome/locale/el/aboutTor.dtd b/chrome/locale/el/aboutTor.dtd
index 33e005a0..1d23b6bb 100644
--- a/chrome/locale/el/aboutTor.dtd
+++ b/chrome/locale/el/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "Εγγραφτείτε για τα νέα του Tor.">
<!ENTITY aboutTor.donationBanner.line2e "Διατηρήστε το Tor ισχυρό.">
<!ENTITY aboutTor.donationBanner.buttonA "Κάντε μια δωρεά τώρα!">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "Δωρίστε σήμερα και το Mozilla θα δωρίσει το ίδιο ποσό!">
-<!ENTITY aboutTor.ey2019.tracking "Tracking, surveillance, and censorship are widespread online.">
-<!ENTITY aboutTor.ey2019.takeback "Take back the Internet with Tor">
diff --git a/chrome/locale/en-US/aboutTor.dtd b/chrome/locale/en-US/aboutTor.dtd
index 49215c75..c4273ad2 100644
--- a/chrome/locale/en-US/aboutTor.dtd
+++ b/chrome/locale/en-US/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "Sign up for Tor News.">
<!ENTITY aboutTor.donationBanner.line2e "Keep Tor strong.">
<!ENTITY aboutTor.donationBanner.buttonA "Donate Now">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "Give today, and Mozilla will match your donation.">
-<!ENTITY aboutTor.ey2019.tracking "Tracking, surveillance, and censorship are widespread online.">
-<!ENTITY aboutTor.ey2019.takeback "Take back the Internet with Tor">
diff --git a/chrome/locale/es-AR/aboutTor.dtd b/chrome/locale/es-AR/aboutTor.dtd
index 972aaf90..552db139 100644
--- a/chrome/locale/es-AR/aboutTor.dtd
+++ b/chrome/locale/es-AR/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "Registrate en Tor News.">
<!ENTITY aboutTor.donationBanner.line2e "Mantener fuerte a Tor.">
<!ENTITY aboutTor.donationBanner.buttonA "Doná ahora">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "Dá hoy, y Mozilla emparejará tu donación.">
-<!ENTITY aboutTor.ey2019.tracking "Tracking, surveillance, and censorship are widespread online.">
-<!ENTITY aboutTor.ey2019.takeback "Take back the Internet with Tor">
diff --git a/chrome/locale/es-ES/aboutTor.dtd b/chrome/locale/es-ES/aboutTor.dtd
index aa075278..aff6157d 100644
--- a/chrome/locale/es-ES/aboutTor.dtd
+++ b/chrome/locale/es-ES/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "Inscríbete en Tor News.">
<!ENTITY aboutTor.donationBanner.line2e "Mantén fuerte a Tor.">
<!ENTITY aboutTor.donationBanner.buttonA "Dona ahora.">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "Dona hoy, y Mozilla igualará tu donación.">
-<!ENTITY aboutTor.ey2019.tracking "El rastreo, la vigilancia y la censura están muy extendidos en línea.">
-<!ENTITY aboutTor.ey2019.takeback "Recupera Internet con Tor.">
diff --git a/chrome/locale/eu/aboutTor.dtd b/chrome/locale/eu/aboutTor.dtd
index da5b8553..227035d0 100644
--- a/chrome/locale/eu/aboutTor.dtd
+++ b/chrome/locale/eu/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "Harpidetu Tor berrietara">
<!ENTITY aboutTor.donationBanner.line2e "Mantendu Tor indartsu.">
<!ENTITY aboutTor.donationBanner.buttonA "Egin dohaintza orain">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "Dohaintza egin gaur, eta Mozillak emandakoa berdinduko du.">
-<!ENTITY aboutTor.ey2019.tracking "Jarraipena, jagoletza eta zentsura oso hedatuta daune online.">
-<!ENTITY aboutTor.ey2019.takeback "Berreskuratu Internet-a Torri esker">
diff --git a/chrome/locale/fa/aboutTor.dtd b/chrome/locale/fa/aboutTor.dtd
index 73f9017b..0ba77914 100644
--- a/chrome/locale/fa/aboutTor.dtd
+++ b/chrome/locale/fa/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "ثبتنام برای اخبار Tor.">
<!ENTITY aboutTor.donationBanner.line2e "Tor را محکم نگه دارید.">
<!ENTITY aboutTor.donationBanner.buttonA "اکنون اهداء کنید">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "امروز کمک کنید و موزیلا با کمک مالی شما همراهی میکند.">
-<!ENTITY aboutTor.ey2019.tracking "ردیابی ، نظارت و سانسور به صورت آنلاین گسترده است.">
-<!ENTITY aboutTor.ey2019.takeback "اینترنت را با Tor برگردانید">
diff --git a/chrome/locale/fr/aboutTor.dtd b/chrome/locale/fr/aboutTor.dtd
index 64a436cc..fc6929b5 100644
--- a/chrome/locale/fr/aboutTor.dtd
+++ b/chrome/locale/fr/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "Inscrivez-vous aux nouvelles de Tor">
<!ENTITY aboutTor.donationBanner.line2e "Assurez la robustesse de Tor.">
<!ENTITY aboutTor.donationBanner.buttonA "Faites un don maintenant">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "Faites un don aujourd’hui et Mozilla fera un don équivalent.">
-<!ENTITY aboutTor.ey2019.tracking "Le pistage, la surveillance et la censure sont très répandus sur Internet.">
-<!ENTITY aboutTor.ey2019.takeback "Avec Tor, réappropriez-vous Internet.">
diff --git a/chrome/locale/ga-IE/aboutTor.dtd b/chrome/locale/ga-IE/aboutTor.dtd
index 0d253b65..7f2f5d82 100644
--- a/chrome/locale/ga-IE/aboutTor.dtd
+++ b/chrome/locale/ga-IE/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "Cláraigh le Nuachtlitir Tor.">
<!ENTITY aboutTor.donationBanner.line2e "Cuir taca le Tor.">
<!ENTITY aboutTor.donationBanner.buttonA "Tabhair síntiús airgid anois">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "Tabhair síntiús airgid inniu agus tabharfaidh Mozilla an méid céanna arís dúinn.">
-<!ENTITY aboutTor.ey2019.tracking "Tracking, surveillance, and censorship are widespread online.">
-<!ENTITY aboutTor.ey2019.takeback "Take back the Internet with Tor">
diff --git a/chrome/locale/he/aboutTor.dtd b/chrome/locale/he/aboutTor.dtd
index 9187529a..bf26a153 100644
--- a/chrome/locale/he/aboutTor.dtd
+++ b/chrome/locale/he/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "הירשם עבור חדשות Tor.">
<!ENTITY aboutTor.donationBanner.line2e "שמור על Tor חזק.">
<!ENTITY aboutTor.donationBanner.buttonA "תרום עכשיו">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "תן היום, ו־Mozilla תשווה את תרומתך.">
-<!ENTITY aboutTor.ey2019.tracking "מעקב, ציתות וצנזורה נפוצים ברשת.">
-<!ENTITY aboutTor.ey2019.takeback "קח בחזרה את האינטרנט עם Tor">
diff --git a/chrome/locale/hu/aboutTor.dtd b/chrome/locale/hu/aboutTor.dtd
index 8d8077aa..5d8e327c 100644
--- a/chrome/locale/hu/aboutTor.dtd
+++ b/chrome/locale/hu/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "Iratkozzon fel a Tor hírekhez.">
<!ENTITY aboutTor.donationBanner.line2e "Tartsuk meg a Tor-t erősnek.">
<!ENTITY aboutTor.donationBanner.buttonA "Támogasson most">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "Adjon ma és a Mozilla is annyival támogat.">
-<!ENTITY aboutTor.ey2019.tracking "A követés, megfigyelés és cenzúra széles körben elterjedt online.">
-<!ENTITY aboutTor.ey2019.takeback "Take back the Internet with Tor">
diff --git a/chrome/locale/id/aboutTor.dtd b/chrome/locale/id/aboutTor.dtd
index 5ce15081..09bac66d 100644
--- a/chrome/locale/id/aboutTor.dtd
+++ b/chrome/locale/id/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "Daftar untuk mendapatkan Berita Tor.">
<!ENTITY aboutTor.donationBanner.line2e "Bantu Tor tetap kuat.">
<!ENTITY aboutTor.donationBanner.buttonA "Donasi Sekarang">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "Beri hari ini dan Mozilla akan mencocokkan hadiah anda.">
-<!ENTITY aboutTor.ey2019.tracking "Tracking, surveillance, and censorship are widespread online.">
-<!ENTITY aboutTor.ey2019.takeback "Take back the Internet with Tor">
diff --git a/chrome/locale/is/aboutTor.dtd b/chrome/locale/is/aboutTor.dtd
index 54b0885e..2ee6f8d7 100644
--- a/chrome/locale/is/aboutTor.dtd
+++ b/chrome/locale/is/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "Skráðu þig til að fá Tor-fréttir.">
<!ENTITY aboutTor.donationBanner.line2e "Höldum Tor sterku">
<!ENTITY aboutTor.donationBanner.buttonA "Styrkja núna">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "Gefðu í dag - og Mozilla mun jafna framlag þitt.">
-<!ENTITY aboutTor.ey2019.tracking "Eftirlit, ritskoðun og njósnir er útbreiddar hættur á internetinu.">
-<!ENTITY aboutTor.ey2019.takeback "Taktu stjórnina yfir netvafrinu þínu með Tor">
diff --git a/chrome/locale/it/aboutTor.dtd b/chrome/locale/it/aboutTor.dtd
index a250de89..27cd6ab9 100644
--- a/chrome/locale/it/aboutTor.dtd
+++ b/chrome/locale/it/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "Registrati alle Tor News.">
<!ENTITY aboutTor.donationBanner.line2e "Mantieni Tor forte.">
<!ENTITY aboutTor.donationBanner.buttonA "Dona Adesso">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "Dai oggi, e Mozilla ricambierà la tua donazione.">
-<!ENTITY aboutTor.ey2019.tracking "Tracciamento, sorveglianza e censura sono ampiamente diffuse in rete.">
-<!ENTITY aboutTor.ey2019.takeback "Riprendi possesso di internet con Tor">
diff --git a/chrome/locale/ja/aboutTor.dtd b/chrome/locale/ja/aboutTor.dtd
index c5421168..b657853f 100644
--- a/chrome/locale/ja/aboutTor.dtd
+++ b/chrome/locale/ja/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "Tor ニュースに申し込む。">
<!ENTITY aboutTor.donationBanner.line2e "Tor を強く保つ。">
<!ENTITY aboutTor.donationBanner.buttonA "今すぐ寄付">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "寄付をお願いします。Mozillaはあなたの寄付に裏切りません。">
-<!ENTITY aboutTor.ey2019.tracking "トラッキング、監視、検閲はネット上で広く行われています。">
-<!ENTITY aboutTor.ey2019.takeback "Take back the Internet with Tor">
diff --git a/chrome/locale/ka/aboutTor.dtd b/chrome/locale/ka/aboutTor.dtd
index 4a47f3d8..144ae7e5 100644
--- a/chrome/locale/ka/aboutTor.dtd
+++ b/chrome/locale/ka/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "გამოიწერეთ Tor-ის სიახლეები.">
<!ENTITY aboutTor.donationBanner.line2e "შეინარჩუნეთ Tor ძლიერი.">
<!ENTITY aboutTor.donationBanner.buttonA "გაიღეთ თანხა">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "გაეცით დღესვე და Mozilla გააორმაგებს თქვენს შემოწირულობას.">
-<!ENTITY aboutTor.ey2019.tracking "მეთვალყურეობა, ზედამხედველობა და აკრძალვები მთელ ინტერნეტშია გავრცელებული.">
-<!ENTITY aboutTor.ey2019.takeback "დაიბრუნეთ ინტერნეტი Tor-ით.">
diff --git a/chrome/locale/ko/aboutTor.dtd b/chrome/locale/ko/aboutTor.dtd
index 84f24b44..70898aed 100644
--- a/chrome/locale/ko/aboutTor.dtd
+++ b/chrome/locale/ko/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "Tor 뉴스를 구독.">
<!ENTITY aboutTor.donationBanner.line2e "Tor 를 강하게 유지하기.">
<!ENTITY aboutTor.donationBanner.buttonA "기부하기">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "Give today, and Mozilla will match your donation.">
-<!ENTITY aboutTor.ey2019.tracking "Tracking, surveillance, and censorship are widespread online.">
-<!ENTITY aboutTor.ey2019.takeback "Take back the Internet with Tor">
diff --git a/chrome/locale/lt/aboutTor.dtd b/chrome/locale/lt/aboutTor.dtd
index aba534b6..b6f8a23d 100644
--- a/chrome/locale/lt/aboutTor.dtd
+++ b/chrome/locale/lt/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "Užsisakykite Tor naujienas.">
<!ENTITY aboutTor.donationBanner.line2e "Išlaikykite Tor stiprų.">
<!ENTITY aboutTor.donationBanner.buttonA "Paaukokite dabar">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "Paaukokite šiandien ir Mozilla paaukos tiek pat, kiek ir jūs.">
-<!ENTITY aboutTor.ey2019.tracking "Sekimas, stebėjimas ir cenzūra internete yra plačiai paplitę.">
-<!ENTITY aboutTor.ey2019.takeback "Susigrąžinkite internetą naudodami Tor.">
diff --git a/chrome/locale/mk/aboutTor.dtd b/chrome/locale/mk/aboutTor.dtd
index 8dd5c069..551ad217 100644
--- a/chrome/locale/mk/aboutTor.dtd
+++ b/chrome/locale/mk/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "Пријавете се за Tor Вести.">
<!ENTITY aboutTor.donationBanner.line2e "Чувај го Tor силен.">
<!ENTITY aboutTor.donationBanner.buttonA "Донирај сега">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "Донирај денес, и Mozilla ќе ја поврзе Вашата донација.">
-<!ENTITY aboutTor.ey2019.tracking "Следењето, надзорот, и цензурата се раширени насекаде низ Интернетот.">
-<!ENTITY aboutTor.ey2019.takeback "Вратете го назад вашиот Интернет со Tor">
diff --git a/chrome/locale/ms/aboutTor.dtd b/chrome/locale/ms/aboutTor.dtd
index 65d19b63..19fe7960 100644
--- a/chrome/locale/ms/aboutTor.dtd
+++ b/chrome/locale/ms/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "Daftar untuk dapatkan Berita Tor.">
<!ENTITY aboutTor.donationBanner.line2e "Pastika Tor kekal teguh.">
<!ENTITY aboutTor.donationBanner.buttonA "Dermalah Sekarang">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "Sumbanglah hari ini dan Mozilla akan sepadankan sumbangan ikhlas anda!">
-<!ENTITY aboutTor.ey2019.tracking "Penjejakan, pengintipan, dan penapisan kini bermajarajalela di dalam talian.">
-<!ENTITY aboutTor.ey2019.takeback "Perkasakan Internet anda dengan Tor">
diff --git a/chrome/locale/nb-NO/aboutTor.dtd b/chrome/locale/nb-NO/aboutTor.dtd
index 9c21095a..7b7e3caf 100644
--- a/chrome/locale/nb-NO/aboutTor.dtd
+++ b/chrome/locale/nb-NO/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "Registrer deg for Tor Nyheter.">
<!ENTITY aboutTor.donationBanner.line2e "Hold Tor sterk.">
<!ENTITY aboutTor.donationBanner.buttonA "Donér nå">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "Give today, and Mozilla will match your donation.">
-<!ENTITY aboutTor.ey2019.tracking "Tracking, surveillance, and censorship are widespread online.">
-<!ENTITY aboutTor.ey2019.takeback "Take back the Internet with Tor">
diff --git a/chrome/locale/nl/aboutTor.dtd b/chrome/locale/nl/aboutTor.dtd
index 808cb3ed..fac87025 100644
--- a/chrome/locale/nl/aboutTor.dtd
+++ b/chrome/locale/nl/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "Meld u aan voor de Tor-nieuwsbrief.">
<!ENTITY aboutTor.donationBanner.line2e "Houd Tor sterk.">
<!ENTITY aboutTor.donationBanner.buttonA "Doneer nu">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "Geef vandaag, en Mozilla geeft hetzelfde bedrag.">
-<!ENTITY aboutTor.ey2019.tracking "Volgen, toezicht en censuur zijn wijdverspreid online.">
-<!ENTITY aboutTor.ey2019.takeback "Pak het internet terug met Tor">
diff --git a/chrome/locale/pl/aboutTor.dtd b/chrome/locale/pl/aboutTor.dtd
index 56ffbd76..d0239848 100644
--- a/chrome/locale/pl/aboutTor.dtd
+++ b/chrome/locale/pl/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "Zapisz się na Tor News.">
<!ENTITY aboutTor.donationBanner.line2e "Utrzymuj Tor silnym.">
<!ENTITY aboutTor.donationBanner.buttonA "Wesprzyj teraz">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "Przekaż dziś, a Mozilla podwoi Twoją dotację.">
-<!ENTITY aboutTor.ey2019.tracking "Tracking, surveillance, and censorship are widespread online.">
-<!ENTITY aboutTor.ey2019.takeback "Take back the Internet with Tor">
diff --git a/chrome/locale/pt-BR/aboutTor.dtd b/chrome/locale/pt-BR/aboutTor.dtd
index c5c1237c..ec235f5b 100644
--- a/chrome/locale/pt-BR/aboutTor.dtd
+++ b/chrome/locale/pt-BR/aboutTor.dtd
@@ -31,8 +31,3 @@
<!ENTITY aboutTor.newsletter.link_text "Inscreva-se para receber Notícias do Tor.">
<!ENTITY aboutTor.donationBanner.line2e "Mantenha o Tor forte.">
<!ENTITY aboutTor.donationBanner.buttonA "Doe Agora">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "Doe hoje, e a Mozilla duplicará a sua doação.">
-<!ENTITY aboutTor.ey2019.tracking "Rastreamento, vigilância e censura são comuns online.">
-<!ENTITY aboutTor.ey2019.takeback "Recupere a Internet com o Tor">
diff --git a/chrome/locale/ro/aboutTor.dtd b/chrome/locale/ro/aboutTor.dtd
index af4e0ff5..ceaf5b07 100644
--- a/chrome/locale/ro/aboutTor.dtd
+++ b/chrome/locale/ro/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "Abonează-te la Tor News.">
<!ENTITY aboutTor.donationBanner.line2e "Menține Tor puternic.">
<!ENTITY aboutTor.donationBanner.buttonA "Donează Acum">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "Donează azi, și Mozilla va dona în aceeași măsură.">
-<!ENTITY aboutTor.ey2019.tracking "Urmărirea, supravegherea și cenzura sunt răspândite online.">
-<!ENTITY aboutTor.ey2019.takeback "Take back the Internet with Tor">
diff --git a/chrome/locale/ru/aboutTor.dtd b/chrome/locale/ru/aboutTor.dtd
index d38920d1..fddd66c7 100644
--- a/chrome/locale/ru/aboutTor.dtd
+++ b/chrome/locale/ru/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "Подпишитесь на новости Tor.">
<!ENTITY aboutTor.donationBanner.line2e "Сохраните Tor сильным.">
<!ENTITY aboutTor.donationBanner.buttonA "Пожертвовать">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "Пожертвуйте сегодня и Mozilla удвоит ваше пожертвование.">
-<!ENTITY aboutTor.ey2019.tracking "Отслеживание, наблюдение и цензура широко распространены в интернете.">
-<!ENTITY aboutTor.ey2019.takeback "Верните себе интернет вместе с Tor">
diff --git a/chrome/locale/sv-SE/aboutTor.dtd b/chrome/locale/sv-SE/aboutTor.dtd
index 075d692d..d403bb76 100644
--- a/chrome/locale/sv-SE/aboutTor.dtd
+++ b/chrome/locale/sv-SE/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "Anmäl dig till Tor-nyheter.">
<!ENTITY aboutTor.donationBanner.line2e "Håll Tor stark.">
<!ENTITY aboutTor.donationBanner.buttonA "Donera nu">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "Ge idag, och Mozilla kommer att matcha din donation.">
-<!ENTITY aboutTor.ey2019.tracking "Spårning, övervakning och censur är utbrett på nätet.">
-<!ENTITY aboutTor.ey2019.takeback "Ta tillbaka internet med Tor">
diff --git a/chrome/locale/th/aboutTor.dtd b/chrome/locale/th/aboutTor.dtd
index 3212475c..071ec960 100644
--- a/chrome/locale/th/aboutTor.dtd
+++ b/chrome/locale/th/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "สมัครรับข่าวสารเกี่ยวกับ Tor">
<!ENTITY aboutTor.donationBanner.line2e "ทำให้ Tor เข็มแข็งขึ้น">
<!ENTITY aboutTor.donationBanner.buttonA "ร่วมบริจาค">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "บริจาควันนี้และมอซิลลาจะสมทบเท่ากับที่คุณให้">
-<!ENTITY aboutTor.ey2019.tracking "Tracking, surveillance, and censorship are widespread online.">
-<!ENTITY aboutTor.ey2019.takeback "Take back the Internet with Tor">
diff --git a/chrome/locale/tr/aboutTor.dtd b/chrome/locale/tr/aboutTor.dtd
index a0c27b36..42c9bc18 100644
--- a/chrome/locale/tr/aboutTor.dtd
+++ b/chrome/locale/tr/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "Tor Duyurularına Abone Olun">
<!ENTITY aboutTor.donationBanner.line2e "Tor uygulamasının gücünü koruyun.">
<!ENTITY aboutTor.donationBanner.buttonA "Bağış Yapın">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "Bugün yaptığınız her bağış kadar Mozilla da bağış yapacak.">
-<!ENTITY aboutTor.ey2019.tracking "Çevrimiçi izleme, gözetim ve sansür uygulamaları yaygındır.">
-<!ENTITY aboutTor.ey2019.takeback "Tor kullanın İnterneti geri alın.">
diff --git a/chrome/locale/vi/aboutTor.dtd b/chrome/locale/vi/aboutTor.dtd
index f06ed541..e69430c7 100644
--- a/chrome/locale/vi/aboutTor.dtd
+++ b/chrome/locale/vi/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "Đăng kí nhận tin tức từ Tor.">
<!ENTITY aboutTor.donationBanner.line2e "Giữ cho Tor trở nên mạnh mẽ.">
<!ENTITY aboutTor.donationBanner.buttonA "Đóng góp Ngay bây giờ">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "Hãy đóng góp ngay hôm nay, và Mozilla sẽ đóng góp tương ứng với phần của bạn.">
-<!ENTITY aboutTor.ey2019.tracking "Tracking, surveillance, and censorship are widespread online.">
-<!ENTITY aboutTor.ey2019.takeback "Take back the Internet with Tor">
diff --git a/chrome/locale/zh-CN/aboutTor.dtd b/chrome/locale/zh-CN/aboutTor.dtd
index f0468fbf..2048dc54 100644
--- a/chrome/locale/zh-CN/aboutTor.dtd
+++ b/chrome/locale/zh-CN/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "订阅 Tor 的最新动态">
<!ENTITY aboutTor.donationBanner.line2e "让 Tor 网络保持健壮。">
<!ENTITY aboutTor.donationBanner.buttonA "立即捐助">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "现在捐款, Mozilla 会匹配你的捐赠。">
-<!ENTITY aboutTor.ey2019.tracking "跟踪,监视和审查在网上广泛存在。">
-<!ENTITY aboutTor.ey2019.takeback "使用 Tor 夺回互联网">
diff --git a/chrome/locale/zh-TW/aboutTor.dtd b/chrome/locale/zh-TW/aboutTor.dtd
index 76ddf0f2..e937a010 100644
--- a/chrome/locale/zh-TW/aboutTor.dtd
+++ b/chrome/locale/zh-TW/aboutTor.dtd
@@ -30,8 +30,3 @@
<!ENTITY aboutTor.newsletter.link_text "訂閱 Tor 的新資訊。">
<!ENTITY aboutTor.donationBanner.line2e "使 Tor 更加茁壯。">
<!ENTITY aboutTor.donationBanner.buttonA "立刻捐款">
-
-<!-- End of year 2019 Fundraising campaign -->
-<!ENTITY aboutTor.ey2019.mozilla "今日您捐款,Mozilla 也會捐出相同數額。">
-<!ENTITY aboutTor.ey2019.tracking "在網路世界中,追蹤、監視和審查無所不在。">
-<!ENTITY aboutTor.ey2019.takeback "透過 Tor 找回對網際網路的自主權">
diff --git a/chrome/skin/Take_Back_Monochrome_purple.png b/chrome/skin/Take_Back_Monochrome_purple.png
deleted file mode 100644
index f2503f1a..00000000
Binary files a/chrome/skin/Take_Back_Monochrome_purple.png and /dev/null differ
diff --git a/chrome/skin/aboutTor.css b/chrome/skin/aboutTor.css
index 5da0e509..170cda27 100644
--- a/chrome/skin/aboutTor.css
+++ b/chrome/skin/aboutTor.css
@@ -95,7 +95,7 @@ a {
min-height: 92px;
}
-body:not([ey2019]) .top {
+.top {
white-space: nowrap;
}
@@ -345,114 +345,3 @@ body[mobile] .onion-pattern-container {
position: absolute;
bottom: 0px;
}
-
-/* End of year 2019 Fundraising campaign */
-body[toron][ey2019] {
- background-color: black;
-}
-
-body[ey2019] .searchbox form {
- width: 500px;
- margin: 3px auto 0px auto;
- text-align: left;
-}
-
-body[ey2019] .torcontent-logo {
- display: none!important;
-}
-
-#ey2019_1 {
- margin-bottom: 30px;
-}
-
-#ey2019_2 {
- margin-bottom: 30px;
- text-align: left;
-}
-
-#ey2019_3 {
- padding-bottom: 30px;
- text-align: left;
-}
-
-#ey2019_tracking {
- color: lime;
- font-family: 'Source Code Pro', monospace;
- font-size: 14px;
- font-weight: 400;
- line-height: 17px;
- text-align: left;
- max-width: 305px;
-}
-
-#ey2019_takeback {
- color: lime;
- font-family: 'LeagueGothic', sans-serif;
- font-size: 60px;
- line-height: 52px;
- text-transform: uppercase;
- width: 245px;
- font-synthesis: style;
- text-align: left;
-}
-
-#ey2019_donate_mobile,
-#ey2019_donate {
- border: 3px solid blueViolet;
- background: black;
- color: white;
- padding: 0.2em 0.8em;
- text-transform: uppercase;
- font-size: 1.5em;
- font-family: 'LeagueGothic', sans-serif;
- text-decoration: none;
- display: inline-block;
- margin-left: 5px;
- margin-right: 35px;
- vertical-align: super;
-}
-
-#ey2019_donate_mobile,
-#ey2019_donate:hover {
- background: blueViolet;
- color: black;
-}
-
-#ey2019_mozilla {
- color: white;
- font-family: 'Source Code Pro', monospace;
- font-size: 14px;
- font-weight: 400;
- display: inline-block;
- max-width: 300px;
- text-align: left;
- margin-top: 10px;
-}
-
-#ey2019_banner {
- background-image: url('Take_Back_Monochrome_purple.png');
- background-size: contain;
- background-position: 90% 100%;
- background-repeat: no-repeat;
- max-width: 540px;
- margin: 0 auto;
-}
-
-body[ey2019] #torstatus {
- margin-top: 40px;
-}
-
-body:not([ey2019]) .showIfEY2019,
-body[ey2019] .hideIfEY2019 {
- display: none;
-}
-
-body:not([mobile]) #ey2019_donate_mobile,
-body:not([mobile]) #ey2019_donate_mobile_bottom {
- display: none;
-}
-
-body[mobile] #ey2019_donate,
-body[mobile] #ey2019_donate_bottom {
- display: none;
-}
diff --git a/chrome/skin/aboutTorFonts.css b/chrome/skin/aboutTorFonts.css
deleted file mode 100644
index ce9a457b..00000000
--- a/chrome/skin/aboutTorFonts.css
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * Copyright (c) 2019, The Tor Project, Inc.
- * See LICENSE for licensing information.
- *
- * vim: set sw=2 sts=2 ts=8 et syntax=css:
- */
-
-@font-face {
- font-family: 'Source Code Pro'; /* https://github.com/adobe-fonts/source-code-pro */
- font-weight: 400;
- font-style: normal;
- font-stretch: normal;
- src: url('data:application/font-woff;base64,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') format('woff2');
-}
-
-@font-face {
- font-family: LeagueGothic; /* https://open-foundry.com/fonts/league_gothic_italic */
- src: url('data:font/opentype;base64,T1RUTwALAIAAAwAwQ0ZGIPjyxbYAAAqcAABIRUdQT1OYXpa3AABYBAAAAHJHU1VCAAEAAAAAV/gAAAAKT1MvMmjVgOgAAAEgAAAAYGNtYXBD25mIAAAF9AAABIhoZWFk+wU83QAAALwAAAA2aGhlYQbOAocAAAD0AAAAJGhtdHimXUk5AABS5AAABRRtYXhwAUZQAAAAARgAAAAGbmFtZYeLmusAAAGAAAAEc3Bvc3T/0QAyAAAKfAAAACAAAQAAAAEAQXqG+qxfDzz1AAMD6AAAAADMZPx/AAAAAMxk/H//xP8GA2ADuAAAAAMAAgAAAAAAAAABAAADp/73AAADI//E/ygDYAABAAAAAAAAAAAAAAAAAAABRAAAUAABRgAAAAMBTQGQAAUACAKKAlgAAABLAooCWAAAAV4AMgFIAAAAAAUAAAAAAAAAAAAABwAAAAAAAAAAAAAAAFVLV04AQAAA+wIC3/73AMgDpwEJIAAAkwAAAAACIwLfAAAAIAACAAAAGAEmAAEAAAAAAAAAKAAAAAEAAAAAAAEADQAoAAEAAAAAAAIABgA1AAEAAAAAAAMAHgA7AAEAAAAAAAQAFABZAAEAAAAAAAUAPABtAAEAAAAAAAYAEwCpAAEAAAAAAAgAGwC8AAEAAAAAAAkACwDXAAEAAAAAAAsAIgDiAAEAAAAAAAwAEQEEAAMAAQQJAAAAUAEVAAMAAQQJAAEAKAFlAAMAAQQJAAIADgGNAAMAAQQJAAMAPAGbAAMAAQQJAAQAJgHXAAMAAQQJAAUAeAH9AAMAAQQJAAYAJgHXAAMAAQQJAAgANgJ1AAMAAQQJAAkAFgKrAAMAAQQJAAsARALBAAMAAQQJAAwAIgMFAAMAAQQJABAAGgMnAAMAAQQJABEADANBMjAwOSAtIDIwMTEsIFRoZSBMZWFndWUgb2YgTW92ZWFibGUgVHlwZUx
lYWd1ZSBHb3RoaWNJdGFsaWMxLjAwMTtVS1dOO0xlYWd1ZUdvdGhpYy1JdGFsaWNMZWFndWUgR290aGljIEl0YWxpY1ZlcnNpb24gMS4wMDE7UFMgMDAxLjAwMTtob3Rjb252IDEuMC41NjttYWtlb3RmLmxpYjIuMC4yMTMyNUxlYWd1ZUdvdGhpYy1JdGFsaWNUaGUgTGVhZ3VlIG9mIE1vdmVhYmxlIFR5cGVUeWxlciBGaW5ja2h0dHA6Ly90aGVsZWFndWVvZm1vdmVhYmxldHlwZS5jb21odHRwOi8vc3Vyc2x5LmNvbQAyADAAMAA5ACAALQAgADIAMAAxADEALAAgAFQAaABlACAATABlAGEAZwB1AGUAIABvAGYAIABNAG8AdgBlAGEAYgBsAGUAIABUAHkAcABlAEwAZQBhAGcAdQBlACAARwBvAHQAaABpAGMAIABJAHQAYQBsAGkAYwBSAGUAZwB1AGwAYQByADEALgAwADAAMQA7AFUASwBXAE4AOwBMAGUAYQBnAHUAZQBHAG8AdABoAGkAYwAtAEkAdABhAGwAaQBjAEwAZQBhAGcAdQBlAEcAbwB0AGgAaQBjAC0ASQB0AGEAbABpAGMAVgBlAHIAcwBpAG8AbgAgADEALgAwADAAMQA7AFAAUwAgADAAMAAxAC4AMAAwADEAOwBoAG8AdABjAG8AbgB2ACAAMQAuADAALgA1ADYAOwBtAGEAawBlAG8AdABmAC4AbABpAGIAMgAuADAALgAyADEAMwAyADUAVABoAGUAIABMAGUAYQBnAHUAZQAgAG8AZgAgAE0AbwB2AGUAYQBiAGwAZQAgAFQAeQBwAGUAVAB5AGwAZQByACAARgBpAG4AYwBrAGgAdAB0AHAAOgAvAC8AdABoAGUAbABlAGEAZwB1AGUAbwBmAG0AbwB2AGUAYQBiAGwAZQB0AHkAcABlAC4AYwBvAG0AaAB0AHQAcAA6AC8ALwBz
AHUAcgBzAGwAeQAuAGMAbwBtAEwAZQBhAGcAdQBlACAARwBvAHQAaABpAGMASQB0AGEAbABpAGMAAAAAAwAAAAMAAAEiAAEAAAAAABwAAwABAAABIgAAAQYAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAA4SLhqGoqoyUlX6pgpiHjnR1dnd4eXp7fH2BjaelpomrvgoLDQ4TFBUWGxwdHh8hKSorLC0uMzQ1NjiSf5Owj7g5QUJERUpLTE1TVFVWV1lhYmNkZmdsbW5vcZCskaQABQcMDyAkMTo9Ozw/PkNGSUdIT1JQUVhaXVtcX2hraWoAAKCiAIAAZa6tr7G2AAkmAAAAAKMAAAAAAAAAAABAXoqFAAAAAAAAAIMABggnKGCXlpqbnJ0AAHA3AJ8AAHJzAIiemQAEEL8REhcYGRoiIwAlLzAyTrW9urK3vLS5u7MABANmAAAAVABAAAUAFAAAAA0ALwA5AEUASQBOAE8AVQBZAGUAaQBuAG8AcwB1AHkAfgCUAKMApQCpAK8AtAC4ANYA9gFhAX8CGwLHAt0gFCAaIB8gIiAmIKwhIiIS+wL//wAAAAAADQAgADAAOgBGAEoATwBQAFYAWgBmAGoAbwBwAHQAdgB6AJMAoQClAKgArgC0ALcAvwDYAPgBZAIaAsYC2CATIBggHCAiICYgrCEiIhL7Af//AAH/9QAAAEQAAP/N/9H/0v/Z/90AAP/k/+n/6v/x//L/9gAAALEAAP/+AAAAAP/9AAAAAAAAAAAAAAAAAAAAAAAA4IQAAOBe4F3f89+N3zAFcQABAAAAAABQAAAAbAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAACCAAAAiAAAAIoAjAAAAIwAjgC8APgBygIAAgICBAIOAAACDgAAAAAAAAAAAAAAAAAAAAMAhACLAIYAoQCoAKoAjACUAJUAfgCpAIIAmACHAI4AgQCNAKcApQCmAIkAqwC+A
AoACwANAA4AOACSAH8AkwCwAI8AuAA5AEEAQgBEAEUAcQCQAKwAkQCkAIUAoACiALYArQCuALoAiAC0AIoABgC/AAQACAAFAAcACQAMABIADwAQABEAGgAXABgAGQDGACAAJQAiACMAJwAkACYAMgAvADAAMQD6AOgAZQA9ADoAOwA/ADwAPgBAAEMASQBGAEcASABSAE8AUABRAQYAWABdAFoAWwBfAFwAXgBrAGgAaQBqATwBKQBwAMABAAFBAP8AwQEBAMIBAgDEAQQAxQEFAMMBAwDHAQcAyAEIAMwBDADJAQkAywELAM0BDQDKAQoAzwEPAM4BDgDRAREA0AEQANMBEwDSARIA2QEYANcBFgDVARQA2AEXANYATgDUARUA2gEZANsBGgEbANwBHADeAR4A3QEdAN8BHwDgASAA4QEhAOMBJADiASMBIgDkASUA5wEoAOUBJgDmAScAKABgAOkBKgDrASwA6gErAOwBLQDvATAA7gEvAO0BLgDxATMA8AEyAPgBOgD1ATcA8wE1APcBOQD0ATYA9gE4APkBOwD7AT0ANwD8AT4A/gFAAP0BPwExAPIBNAC1ALMAsgC3ALwAuwC9ALkAlwCWAJoAmwCZAUMAAwAAAAAAAP/OADIAAAAAAAAAAAAAAAAAAAAAAAAAAAEABAIAAQEBFExlYWd1ZUdvdGhpYy1JdGFsaWMAAQEBKPgQAPiXAfiYAviZA/gYBEAMA0/7jvoC+kwFHA9LDxwQ8BGkHDx+EgB/AgABAAgADwATABoAHgAlACwAMgA4AEMATQBTAFkAXwBlAG8AdgB9AIMAjgCaAKQAqACzALUAuwDFAMwA0wDZAOQA8AD2APwBCAEMARIBGAEkAScBLQE6AUEBRwFNAVkBXwFnAXIBdgF8AYMBiQGWAZ0BpAGpAa8BugHFAcsB1QHbAeIB6QHvAfUCAAIKAhACFgIcAiICLAIzAjoCQAJLAlcCYQJlAnACdgJ4An
8ChgKMApcCowKvArUCuwLHAssC0QLcAuIC7gLxAvcDBAMLAxEDFwMjAykDMQM8A0EDRQNLA1IDWANlA2wDcwN4A34DiQOUA5oDpAOqA7ED2QPtA/p1bmkwMDkzdW5pMDA5NE5VTEx1bmkwMDBERXVyb0FtYWNyb25Bb2dvbmVrQ2FjdXRlQ2Nhcm9uQ2NpcmN1bWZsZXhDZG90YWNjZW50RGNhcm9uRGNyb2F0RWJyZXZlRWNhcm9uRWRvdGFjY2VudEVtYWNyb25Fb2dvbmVrR2JyZXZlR2NpcmN1bWZsZXhHY29tbWFhY2NlbnRHZG90YWNjZW50SGJhckhjaXJjdW1mbGV4SUpJYnJldmVJZG90YWNjZW50SW1hY3JvbklvZ29uZWtJdGlsZGVKY2lyY3VtZmxleEtjb21tYWFjY2VudExhY3V0ZUxjYXJvbkxjb21tYWFjY2VudExkb3ROYWN1dGVOY2Fyb25OY29tbWFhY2NlbnRFbmdPYnJldmVPaHVuZ2FydW1sYXV0T21hY3JvblJhY3V0ZVJjYXJvblJjb21tYWFjY2VudFNhY3V0ZVNjZWRpbGxhU2NpcmN1bWZsZXhUYmFyVGNhcm9udW5pMDIxQVVicmV2ZVVodW5nYXJ1bWxhdXRVbWFjcm9uVW9nb25la1VyaW5nVXRpbGRlV2NpcmN1bWZsZXhZY2lyY3VtZmxleFphY3V0ZVpkb3RhY2NlbnRhYnJldmVhbWFjcm9uYW9nb25la2NhY3V0ZWNjYXJvbmNjaXJjdW1mbGV4Y2RvdGFjY2VudGRjYXJvbmRjcm9hdGVicmV2ZWVjYXJvbmVkb3RhY2NlbnRlbWFjcm9uZW9nb25la2dicmV2ZWdjaXJjdW1mbGV4Z2NvbW1hYWNjZW50Z2RvdGFjY2VudGhiYXJoY2lyY3VtZmxleGlicmV2ZWlqaW1hY3JvbmlvZ29uZWtpdGlsZGVqY2lyY3VtZmxleGt
jb21tYWFjY2VudGtncmVlbmxhbmRpY2xhY3V0ZWxjYXJvbmxjb21tYWFjY2VudGxkb3RuYWN1dGVuYXBvc3Ryb3BoZW5jYXJvbm5jb21tYWFjY2VudGVuZ29icmV2ZW9odW5nYXJ1bWxhdXRvbWFjcm9ucmFjdXRlcmNhcm9ucmNvbW1hYWNjZW50c2FjdXRlc2NlZGlsbGFzY2lyY3VtZmxleGxvbmdzdGJhcnRjYXJvbnVuaTAyMUJ1YnJldmV1aHVuZ2FydW1sYXV0dW1hY3JvbnVvZ29uZWt1cmluZ3V0aWxkZXdjaXJjdW1mbGV4eWNpcmN1bWZsZXh6YWN1dGV6ZG90YWNjZW50QWJyZXZldW5pMjAxRjIwMDkgLSAyMDExLCBUaGUgTGVhZ3VlIG9mIE1vdmVhYmxlIFR5cGVMZWFndWUgR290aGljLUl0YWxpY0xlYWd1ZSBHb3RoaWMAuAIAAQASAB0ANABJAFEAagB/AJIAmgDLANQA3QDnAUQBVgFgAWYBagF1AXoBiQGaAaMBywHbAeAB6wHyAg0CXAJkAqwC5wL/AwIDBgMTAyQDMgM6Az8DSQNhA3UDnQOiA7EDuwPCA8kENwQ8BEEERARMBFQEWQRfBHYElAScBKEEpwTFBNEE2gTlBQ8FFgUbBSgFNQU9BUsFWAVdBW4FdwV/BYkFjwWWBZ8F1gXiBegF+QX+BgUGDAYQBiEGJgYrBi4GPQZCBkcGSwZhBmUGagZvBncGfQaBBogGmwagBqoGsAa1BrsGvwbKBs4G2QbqBu8G8wb3BwAHGQcpBy4HSQdOB1IHVwdbB18HYwduB3IHdgd9B4EHhQeUB5gHnQelB6wHsQe3B7sHxAfIB8wH0QfWB9oH3gfiB+gH7AfxB/UIAQgICBMIGAgeCCIIJggvCDoIQAhHCE4IUwhXCGEIZQhpCG0IdQh5CH4IgwiHCIsIjwiTFU8KfHd6eHR8CHpzboNoIAoVJgoo
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
MLBd8GC28K95EWQQoLiIAKC/cDBQtLCg5qHQ73FgUL+IL3hQELGCYGC4qGigv5tHgdoWiyaAoLrMMdAcMLoQr39QsBxPfaAwv3d5LdkgukngiUlpuPnxuyl3V2kh+PC2wKAQuOlIwLjZSKkoiSCI6KiIyGG4ALg5yDnIMLltYKCwUmBgsFJwYLfFZ1xgoLi/i3AQujpQoLgAiGC3uSfwt0egiCgHuHdxtjfgv3A3cdCwGzywoLpvde9y0LxfeQ93sLiJKIC8OeCvcK+AoDCx+IhoqGiBpe+2kLoB3HCgt8dnGEahsL0/gC9PekCwZ5NwULbAWRBgv3+QMLkx+OC5IfjgualAgLnpaWmZbOCgsBxfgbAwu091YYCwZ3MAULBncsBQsF9x8GC5KEkgsZkIcLBSsGCwAAAACaAAAAAAAAAJoAAACaAAABdgAKAXYACgF2AAoBdgAKAXYACgIZAAgBbAAoAVoAPAFaADwBdAAoATMAKAEzACgBMwAoATMAKAEzACgBLQAoAWgAOQF8ACgAvAAoAMQAKAC1ACQAtgAlAMQAMADPAAQBdwAoAScAKAHkACgBiwAoAYsAKAFiADwBYgA8AWIAPAFiADwBYgA8AWIAGgFiADwB4AA8AWAAKAFkADwBaQAoAVcAMAE8AGgBbgBCAW4AQgFuAEIBbgBCAW4AQgFeAHkB8ABlAWgACAFWAHUBWAB2ATIACgFNACsBTQArAU0AKwFNACsBTQArAU0AKwFNACsB4wArAU8AKAE7ADgBOwA4AU8ANQFCADkBQgA5AUIAOQFCADkBQgA5AOgAPQFW//ABUQAoALUAKAC1ACgAtQAoALUAKAC2ACgAtQAoALL/xAE5ACgAtQAoAfMAKAFRACgBUQAoAUEAOAFBADgBQQA4AUEAOAFBADgBQQA0AUEAOAHmADgBTwAAAU8ANQD2ACgBNAAsAWYAIAD1AFUBUQA3AVEANwFRADcBUQA3AVEANwEmAGE
BugBbAS4ACAE2/+cBNv/nAQQABgF5AD0BeQA9AWIAPADoAFQBZQAbAU8AOgFOAC4BWABCAVYAOgEgADgBVAA2AVYANgFLAKUBgwCzAUQAeQCxACQAl//7AdcAGgC9ACoAvf/9AloARQCdABoAaQBDATsAYQE7AAUBDwCjAJcAjgCxAAgBYP/1Ak8AAgFQAEwBUP/uAQcAEQEHAAUBEgBSARL//gHbAGcBigBnANkAUwEx//8BMQCDATEAgwCXAIEAlwB/AJf/+wGNAFIBNwBMAVIAMgGPAAgBYABHAnEAwwIFAFUCBQA2AgUAZwHpAE0CBgBnAaEANAGqADwArv/zAyMAXwMjAF8BygCsAhoAbQH0AU8B9AEdAfMBGQH0ALMB8wEGAfQBDAHzAU0B9AEpAfQA8AH0ASEB9ACRAfMBQAH0ASABdgAKAXYACgF2AAoBdgAKAVoAPAFaADwBWgA8AVoAPAF0ACgBdAAoAXQAKAEzACgBMwAoATMAKAEzACgBMwAoAWgAOQFoADkBaAA5AWgAOQF8ACgBfAAoAYsAKAC8ACgAvAAoALwAKAC8/9wAvAAoAM8ABAF3ACgBJwAoAScAKAEnACgBJwAoATMANAGLACgBiwAoAYsAKAGLACgBYgA8AWIAPAFiADwBYgAoAWkAKAFpACgBaQAoAVcAMAFXADABVwAwAVcAMAE8AGgBPABoATwAZgFuAEIBbgBCAW4AQgFuAEIBbgBCAW4AQgH6AG8BWAB2AVYAdQEyAAoBMgAKATIACgFNACsBTQArAU0AKwE7ADgBOwA4ATsAOAE7ADgBSQA+AeYANQFPADUBQgA5AUIAOQFCADkBQgA5AUIAOQFW//ABVv/wAVb/8AFW//ABUQAoAVEAKAC1ACgBZwAoALUAKAC1//MAtQAoALL/xAE5ACgBOQAoALUAKAFMACgAtQAXAR4AKADlAEABUQAoAVEAKAFRACgBUQAoAVEAKAFBADgBQQA4
AUEAOAFPAAAA9gAoAPYAKAD2ABUBNAAsATQALAE0ACwBNAAsAOgAEgD1AFUBjABVAPUAVQFRADcBUQA3AVEANwFRADcBUQA3AVEANwG6AFsBNv/nATb/5wEEAAYBBAAGAQQABgF2AAoBewBnATEAngCDAIMAAQAAAAAAAAAAAAAAAQAAAAoAMABKAAJERkxUAA5sYXRuABoABAAAAAD//wABAAAABAAAAAD//wABAAEAAmtlcm4ADmtlcm4AFAAAAAEAAAAAAAEAAAABAAQAAgAAAAEACAABABYABAAAAAEADAACAC3/5gA0/+IAAQABAL4AAA==');
-}
\ No newline at end of file
1
0

[tor-browser-build/master] Merge remote-tracking branch 'jrand/namecoin-v10'
by gk@torproject.org 18 Dec '19
by gk@torproject.org 18 Dec '19
18 Dec '19
commit 64a1bed987212218a2a04e456e1828bf135ab703
Merge: 16e629f dc1fa8a
Author: Georg Koppen <gk(a)torproject.org>
Date: Wed Dec 18 14:18:39 2019 +0000
Merge remote-tracking branch 'jrand/namecoin-v10'
projects/aiohttp/build | 14 ++
projects/aiohttp/config | 11 ++
projects/aiohttp_socks/build | 14 ++
projects/aiohttp_socks/config | 11 ++
projects/aiorpcx/build | 14 ++
projects/aiorpcx/config | 11 ++
projects/async_timeout/build | 14 ++
projects/async_timeout/config | 11 ++
projects/attr/build | 14 ++
projects/attr/config | 11 ++
projects/certifi/build | 16 ++
projects/certifi/config | 13 ++
projects/certifi/roots_of_top_10_issuers.pem | 217 +++++++++++++++++++++
projects/chardet/build | 14 ++
projects/chardet/config | 11 ++
projects/dns/build | 17 ++
projects/dns/config | 11 ++
projects/ecdsa/build | 14 ++
projects/ecdsa/config | 11 ++
projects/electrum-nmc/build | 42 ++++
projects/electrum-nmc/config | 48 +++++
projects/firefox/build | 10 +
projects/firefox/config | 5 +
projects/firefox/namecoin-etld.patch | 25 +++
projects/firefox/namecoin-torbutton.patch | 105 ++++++++++
projects/goansicolor/config | 16 ++
projects/gobtcd/config | 32 +++
projects/gobtcd2/config | 32 +++
projects/gobtclog/config | 16 ++
projects/gobtcutil/config | 23 +++
projects/gobuildinfo/config | 31 +++
projects/goconfigurable/config | 16 ++
projects/godegoutils/config | 22 +++
projects/godexlogconfig/config | 40 ++++
projects/godns/config | 26 +++
projects/goeasyconfig/config | 35 ++++
projects/gogroupcache/config | 18 ++
projects/goisatty/config | 20 ++
projects/gokingpin/config | 23 +++
projects/gomadns/config | 40 ++++
projects/goncbtcjson/config | 20 ++
projects/goncrpcclient/config | 23 +++
projects/gopflag/config | 16 ++
projects/gopretty/config | 20 ++
projects/goservice/config | 44 +++++
projects/gosocks/config | 18 ++
projects/gosvcutils/config | 47 +++++
projects/gosystemd/config | 29 +++
projects/gotemplate/config | 16 ++
projects/gotext/config | 16 ++
projects/gotoml/config | 16 ++
projects/gounits/config | 16 ++
projects/gowebsocket/config | 16 ++
projects/goxcryptoed25519/config | 19 ++
projects/goxcryptoripemd160/config | 19 ++
projects/goxlog/config | 23 +++
projects/goxnetip/config | 24 +++
projects/goxsysunix/config | 19 ++
projects/idna/build | 14 ++
projects/idna/config | 11 ++
projects/idna_ssl/build | 14 ++
projects/idna_ssl/config | 11 ++
projects/jsonrpclib/build | 14 ++
projects/jsonrpclib/config | 11 ++
projects/multidict/build | 14 ++
projects/multidict/config | 11 ++
projects/ncdns/build | 31 +++
projects/ncdns/config | 82 ++++++++
projects/ncprop279/build | 32 +++
projects/ncprop279/config | 32 +++
projects/pyaes/build | 14 ++
projects/pyaes/config | 11 ++
projects/six/build | 14 ++
projects/six/config | 11 ++
projects/stemns/build | 25 +++
projects/stemns/config | 17 ++
projects/stemns/settings_port.py | 1 +
projects/stemns/settings_services.py | 4 +
.../Bundle-Data/linux/Data/Electrum-NMC/config | 6 +
.../linux/Data/ncprop279/ncprop279.conf | 12 ++
projects/tor-browser/build | 25 ++-
projects/tor-browser/config | 12 ++
projects/tor-browser/namecoin.patch | 83 ++++++++
projects/typing_extensions/build | 14 ++
projects/typing_extensions/config | 11 ++
projects/yarl/build | 14 ++
projects/yarl/config | 11 ++
rbm.conf | 5 +
88 files changed, 2041 insertions(+), 1 deletion(-)
1
0

18 Dec '19
commit dc1fa8a4b18468440e589c685eafb266211595dc
Author: JeremyRand <jeremyrand(a)airmail.cc>
Date: Wed Dec 18 13:50:27 2019 +0000
Bug 30558: Optionally enable Namecoin
Namecoin will be enabled if all the following are true:
* rbm var/namecoin is set to 1 at build time
* This is true for nightly on linux only
* env var TOR_ENABLE_NAMECOIN=1 is set at run-time
---
projects/aiohttp/build | 14 ++
projects/aiohttp/config | 11 ++
projects/aiohttp_socks/build | 14 ++
projects/aiohttp_socks/config | 11 ++
projects/aiorpcx/build | 14 ++
projects/aiorpcx/config | 11 ++
projects/async_timeout/build | 14 ++
projects/async_timeout/config | 11 ++
projects/attr/build | 14 ++
projects/attr/config | 11 ++
projects/certifi/build | 16 ++
projects/certifi/config | 13 ++
projects/certifi/roots_of_top_10_issuers.pem | 217 +++++++++++++++++++++
projects/chardet/build | 14 ++
projects/chardet/config | 11 ++
projects/dns/build | 17 ++
projects/dns/config | 11 ++
projects/ecdsa/build | 14 ++
projects/ecdsa/config | 11 ++
projects/electrum-nmc/build | 42 ++++
projects/electrum-nmc/config | 48 +++++
projects/firefox/build | 10 +
projects/firefox/config | 5 +
projects/firefox/namecoin-etld.patch | 25 +++
projects/firefox/namecoin-torbutton.patch | 105 ++++++++++
projects/goansicolor/config | 16 ++
projects/gobtcd/config | 32 +++
projects/gobtcd2/config | 32 +++
projects/gobtclog/config | 16 ++
projects/gobtcutil/config | 23 +++
projects/gobuildinfo/config | 31 +++
projects/goconfigurable/config | 16 ++
projects/godegoutils/config | 22 +++
projects/godexlogconfig/config | 40 ++++
projects/godns/config | 26 +++
projects/goeasyconfig/config | 35 ++++
projects/gogroupcache/config | 18 ++
projects/goisatty/config | 20 ++
projects/gokingpin/config | 23 +++
projects/gomadns/config | 40 ++++
projects/goncbtcjson/config | 20 ++
projects/goncrpcclient/config | 23 +++
projects/gopflag/config | 16 ++
projects/gopretty/config | 20 ++
projects/goservice/config | 44 +++++
projects/gosocks/config | 18 ++
projects/gosvcutils/config | 47 +++++
projects/gosystemd/config | 29 +++
projects/gotemplate/config | 16 ++
projects/gotext/config | 16 ++
projects/gotoml/config | 16 ++
projects/gounits/config | 16 ++
projects/gowebsocket/config | 16 ++
projects/goxcryptoed25519/config | 19 ++
projects/goxcryptoripemd160/config | 19 ++
projects/goxlog/config | 23 +++
projects/goxnetip/config | 24 +++
projects/goxsysunix/config | 19 ++
projects/idna/build | 14 ++
projects/idna/config | 11 ++
projects/idna_ssl/build | 14 ++
projects/idna_ssl/config | 11 ++
projects/jsonrpclib/build | 14 ++
projects/jsonrpclib/config | 11 ++
projects/multidict/build | 14 ++
projects/multidict/config | 11 ++
projects/ncdns/build | 31 +++
projects/ncdns/config | 82 ++++++++
projects/ncprop279/build | 32 +++
projects/ncprop279/config | 32 +++
projects/pyaes/build | 14 ++
projects/pyaes/config | 11 ++
projects/six/build | 14 ++
projects/six/config | 11 ++
projects/stemns/build | 25 +++
projects/stemns/config | 17 ++
projects/stemns/settings_port.py | 1 +
projects/stemns/settings_services.py | 4 +
.../Bundle-Data/linux/Data/Electrum-NMC/config | 6 +
.../linux/Data/ncprop279/ncprop279.conf | 12 ++
projects/tor-browser/build | 25 ++-
projects/tor-browser/config | 12 ++
projects/tor-browser/namecoin.patch | 83 ++++++++
projects/typing_extensions/build | 14 ++
projects/typing_extensions/config | 11 ++
projects/yarl/build | 14 ++
projects/yarl/config | 11 ++
rbm.conf | 5 +
88 files changed, 2041 insertions(+), 1 deletion(-)
diff --git a/projects/aiohttp/build b/projects/aiohttp/build
new file mode 100644
index 0000000..e0f9400
--- /dev/null
+++ b/projects/aiohttp/build
@@ -0,0 +1,14 @@
+#!/bin/bash
+[% c("var/set_default_env") -%]
+
+tar xvf [% project %]-[% c('version') %].tar.gz
+
+mkdir -p /var/tmp/dist/[% project %]
+cd /var/tmp/dist/
+
+cp -a $rootdir/[% project %]*/[% project %]/*.py ./[% project %]/
+
+[% c('tar', {
+ tar_src => '.',
+ tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+ }) %]
diff --git a/projects/aiohttp/config b/projects/aiohttp/config
new file mode 100644
index 0000000..79f8f64
--- /dev/null
+++ b/projects/aiohttp/config
@@ -0,0 +1,11 @@
+# vim: filetype=yaml sw=2
+version: 3.5.4
+git_url: https://github.com/aio-libs/aiohttp.git
+git_hash: f6f647eb828fa738610d61481f11fa51e42599e9
+# TODO: This Git repo doesn't use GPG sigs. We should pester them about that.
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
+var:
+ container:
+ use_container: 1
+input_files:
+ - project: container-image
diff --git a/projects/aiohttp_socks/build b/projects/aiohttp_socks/build
new file mode 100644
index 0000000..0747718
--- /dev/null
+++ b/projects/aiohttp_socks/build
@@ -0,0 +1,14 @@
+#!/bin/bash
+[% c("var/set_default_env") -%]
+
+tar xvf [% project %]-[% c('version') %].tar.gz
+
+mkdir -p /var/tmp/dist/
+cd /var/tmp/dist/
+
+cp -a $rootdir/[% project %]*/[% project %] ./[% project %]
+
+[% c('tar', {
+ tar_src => '.',
+ tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+ }) %]
diff --git a/projects/aiohttp_socks/config b/projects/aiohttp_socks/config
new file mode 100644
index 0000000..3e24f2f
--- /dev/null
+++ b/projects/aiohttp_socks/config
@@ -0,0 +1,11 @@
+# vim: filetype=yaml sw=2
+version: 0.2.2
+git_url: https://github.com/romis2012/aiohttp-socks.git
+git_hash: 3252f4bdd37fb9a7360481977f800189cb3e3aca
+# TODO: This Git repo doesn't use GPG sigs. We should pester them about that.
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
+var:
+ container:
+ use_container: 1
+input_files:
+ - project: container-image
diff --git a/projects/aiorpcx/build b/projects/aiorpcx/build
new file mode 100644
index 0000000..0747718
--- /dev/null
+++ b/projects/aiorpcx/build
@@ -0,0 +1,14 @@
+#!/bin/bash
+[% c("var/set_default_env") -%]
+
+tar xvf [% project %]-[% c('version') %].tar.gz
+
+mkdir -p /var/tmp/dist/
+cd /var/tmp/dist/
+
+cp -a $rootdir/[% project %]*/[% project %] ./[% project %]
+
+[% c('tar', {
+ tar_src => '.',
+ tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+ }) %]
diff --git a/projects/aiorpcx/config b/projects/aiorpcx/config
new file mode 100644
index 0000000..fd8eb5a
--- /dev/null
+++ b/projects/aiorpcx/config
@@ -0,0 +1,11 @@
+# vim: filetype=yaml sw=2
+version: 0.18.3
+git_url: https://github.com/kyuupichan/aiorpcX.git
+git_hash: 4f39366e5dee3fd0a857e53f383c628807cd2715
+# TODO: This Git repo doesn't use GPG sigs. We should pester them about that.
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
+var:
+ container:
+ use_container: 1
+input_files:
+ - project: container-image
diff --git a/projects/async_timeout/build b/projects/async_timeout/build
new file mode 100644
index 0000000..e0f9400
--- /dev/null
+++ b/projects/async_timeout/build
@@ -0,0 +1,14 @@
+#!/bin/bash
+[% c("var/set_default_env") -%]
+
+tar xvf [% project %]-[% c('version') %].tar.gz
+
+mkdir -p /var/tmp/dist/[% project %]
+cd /var/tmp/dist/
+
+cp -a $rootdir/[% project %]*/[% project %]/*.py ./[% project %]/
+
+[% c('tar', {
+ tar_src => '.',
+ tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+ }) %]
diff --git a/projects/async_timeout/config b/projects/async_timeout/config
new file mode 100644
index 0000000..1e0faa7
--- /dev/null
+++ b/projects/async_timeout/config
@@ -0,0 +1,11 @@
+# vim: filetype=yaml sw=2
+version: 3.0.1
+git_url: https://github.com/aio-libs/async-timeout.git
+git_hash: 992fd174a5282258228b74127914f4b8135bf30a
+# TODO: This Git repo doesn't use GPG sigs. We should pester them about that.
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
+var:
+ container:
+ use_container: 1
+input_files:
+ - project: container-image
diff --git a/projects/attr/build b/projects/attr/build
new file mode 100644
index 0000000..296b5f4
--- /dev/null
+++ b/projects/attr/build
@@ -0,0 +1,14 @@
+#!/bin/bash
+[% c("var/set_default_env") -%]
+
+tar xvf [% project %]-[% c('version') %].tar.gz
+
+mkdir -p /var/tmp/dist/[% project %]
+cd /var/tmp/dist/
+
+cp -a $rootdir/[% project %]*/src/[% project %]/*.py ./[% project %]
+
+[% c('tar', {
+ tar_src => '.',
+ tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+ }) %]
diff --git a/projects/attr/config b/projects/attr/config
new file mode 100644
index 0000000..bf62203
--- /dev/null
+++ b/projects/attr/config
@@ -0,0 +1,11 @@
+# vim: filetype=yaml sw=2
+version: 19.1.0
+git_url: https://github.com/python-attrs/attrs.git
+git_hash: 0356f0603eb5d8d4e7bae132ab80847fff4abcfc
+# TODO: This Git repo uses GPG sigs; we should switch from commit hash to GPG verification.
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
+var:
+ container:
+ use_container: 1
+input_files:
+ - project: container-image
diff --git a/projects/certifi/build b/projects/certifi/build
new file mode 100644
index 0000000..7531001
--- /dev/null
+++ b/projects/certifi/build
@@ -0,0 +1,16 @@
+#!/bin/bash
+[% c("var/set_default_env") -%]
+
+tar xvf [% project %]-[% c('version') %].tar.gz
+
+mkdir -p /var/tmp/dist/
+cd /var/tmp/dist/
+
+cp -a $rootdir/[% project %]*/[% project %] ./[% project %]
+
+cp $rootdir/roots_of_top_10_issuers.pem ./[% project %]/cacert.pem
+
+[% c('tar', {
+ tar_src => '.',
+ tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+ }) %]
diff --git a/projects/certifi/config b/projects/certifi/config
new file mode 100644
index 0000000..cd1120d
--- /dev/null
+++ b/projects/certifi/config
@@ -0,0 +1,13 @@
+# vim: filetype=yaml sw=2
+version: 2019.3.9
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
+var:
+ container:
+ use_container: 1
+
+input_files:
+ - project: container-image
+ - URL: https://files.pythonhosted.org/packages/source/c/certifi/certifi-[% c("version") %].tar.gz
+ sha256sum: b26104d6835d1f5e49452a26eb2ff87fe7090b89dfcaee5ea2212697e1e1d7ae
+ # TODO: This package uses GPG sigs; we should switch from SHA256 hash to GPG verification.
+ - filename: roots_of_top_10_issuers.pem
diff --git a/projects/certifi/roots_of_top_10_issuers.pem b/projects/certifi/roots_of_top_10_issuers.pem
new file mode 100644
index 0000000..2d53dd8
--- /dev/null
+++ b/projects/certifi/roots_of_top_10_issuers.pem
@@ -0,0 +1,217 @@
+# This file contains the root CA's used by the top 10 HTTPS cert issuers for
+# the Alexa Top 1 Million as of February 2019, according to Scott Helme's HTTPS
+# issuer list and crt.sh's root CA database. Each root CA is copied verbatim
+# from cacert.pem from certifi-2019.3.9.
+
+# Issuer: CN=DST Root CA X3 O=Digital Signature Trust Co.
+# Subject: CN=DST Root CA X3 O=Digital Signature Trust Co.
+# Label: "DST Root CA X3"
+# Serial: 91299735575339953335919266965803778155
+# MD5 Fingerprint: 41:03:52:dc:0f:f7:50:1b:16:f0:02:8e:ba:6f:45:c5
+# SHA1 Fingerprint: da:c9:02:4f:54:d8:f6:df:94:93:5f:b1:73:26:38:ca:6a:d7:7c:13
+# SHA256 Fingerprint: 06:87:26:03:31:a7:24:03:d9:09:f1:05:e6:9b:cf:0d:32:e1:bd:24:93:ff:c6:d9:20:6d:11:bc:d6:77:07:39
+-----BEGIN CERTIFICATE-----
+MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/
+MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
+DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow
+PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD
+Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O
+rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq
+OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b
+xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw
+7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD
+aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
+HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG
+SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69
+ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr
+AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz
+R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5
+JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo
+Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
+-----END CERTIFICATE-----
+
+# Issuer: CN=COMODO RSA Certification Authority O=COMODO CA Limited
+# Subject: CN=COMODO RSA Certification Authority O=COMODO CA Limited
+# Label: "COMODO RSA Certification Authority"
+# Serial: 101909084537582093308941363524873193117
+# MD5 Fingerprint: 1b:31:b0:71:40:36:cc:14:36:91:ad:c4:3e:fd:ec:18
+# SHA1 Fingerprint: af:e5:d2:44:a8:d1:19:42:30:ff:47:9f:e2:f8:97:bb:cd:7a:8c:b4
+# SHA256 Fingerprint: 52:f0:e1:c4:e5:8e:c6:29:29:1b:60:31:7f:07:46:71:b8:5d:7e:a8:0d:5b:07:27:34:63:53:4b:32:b4:02:34
+-----BEGIN CERTIFICATE-----
+MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCB
+hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
+A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV
+BAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMTE5
+MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgT
+EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
+Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNh
+dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR
+6FSS0gpWsawNJN3Fz0RndJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8X
+pz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZFGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC
+9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+5eNu/Nio5JIk2kNrYrhV
+/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pGx8cgoLEf
+Zd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z
++pUX2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7w
+qP/0uK3pN/u6uPQLOvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZah
+SL0896+1DSJMwBGB7FY79tOi4lu3sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVIC
+u9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+CGCe01a60y1Dma/RMhnEw6abf
+Fobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5WdYgGq/yapiq
+crxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E
+FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB
+/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvl
+wFTPoCWOAvn9sKIN9SCYPBMtrFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM
+4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+nq6PK7o9mfjYcwlYRm6mnPTXJ9OV
+2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSgtZx8jb8uk2Intzna
+FxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwWsRqZ
+CuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiK
+boHGhfKppC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmcke
+jkk9u+UJueBPSZI9FoJAzMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yL
+S0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHqZJx64SIDqZxubw5lT2yHh17zbqD5daWb
+QOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk527RH89elWsn2/x20Kk4yl
+0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7ILaZRfyHB
+NVOFBkpdn627G190
+-----END CERTIFICATE-----
+
+# Issuer: CN=COMODO ECC Certification Authority O=COMODO CA Limited
+# Subject: CN=COMODO ECC Certification Authority O=COMODO CA Limited
+# Label: "COMODO ECC Certification Authority"
+# Serial: 41578283867086692638256921589707938090
+# MD5 Fingerprint: 7c:62:ff:74:9d:31:53:5e:68:4a:d5:78:aa:1e:bf:23
+# SHA1 Fingerprint: 9f:74:4e:9f:2b:4d:ba:ec:0f:31:2c:50:b6:56:3b:8e:2d:93:c3:11
+# SHA256 Fingerprint: 17:93:92:7a:06:14:54:97:89:ad:ce:2f:8f:34:f7:f0:b6:6d:0f:3a:e3:a3:b8:4d:21:ec:15:db:ba:4f:ad:c7
+-----BEGIN CERTIFICATE-----
+MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTEL
+MAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
+BxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMT
+IkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwMzA2MDAw
+MDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdy
+ZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09N
+T0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlv
+biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSR
+FtSrYpn1PlILBs5BAH+X4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0J
+cfRK9ChQtP6IHG4/bC8vCVlbpVsLM5niwz2J+Wos77LTBumjQjBAMB0GA1UdDgQW
+BBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
+BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VGFAkK+qDm
+fQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdv
+GDeAU/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
+-----END CERTIFICATE-----
+
+# Issuer: CN=Go Daddy Root Certificate Authority - G2 O=GoDaddy.com, Inc.
+# Subject: CN=Go Daddy Root Certificate Authority - G2 O=GoDaddy.com, Inc.
+# Label: "Go Daddy Root Certificate Authority - G2"
+# Serial: 0
+# MD5 Fingerprint: 80:3a:bc:22:c1:e6:fb:8d:9b:3b:27:4a:32:1b:9a:01
+# SHA1 Fingerprint: 47:be:ab:c9:22:ea:e8:0e:78:78:34:62:a7:9f:45:c2:54:fd:e6:8b
+# SHA256 Fingerprint: 45:14:0b:32:47:eb:9c:c8:c5:b4:f0:d7:b5:30:91:f7:32:92:08:9e:6e:5a:63:e2:74:9d:d3:ac:a9:19:8e:da
+-----BEGIN CERTIFICATE-----
+MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx
+EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT
+EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp
+ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIz
+NTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH
+EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8GA1UE
+AxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIw
+DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKD
+E6bFIEMBO4Tx5oVJnyfq9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH
+/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD+qK+ihVqf94Lw7YZFAXK6sOoBJQ7Rnwy
+DfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutdfMh8+7ArU6SSYmlRJQVh
+GkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMlNAJWJwGR
+tDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEA
+AaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE
+FDqahQcQZyi27/a9BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmX
+WWcDYfF+OwYxdS2hII5PZYe096acvNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu
+9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r5N9ss4UXnT3ZJE95kTXWXwTr
+gIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYVN8Gb5DKj7Tjo
+2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO
+LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI
+4uJEvlz36hz1
+-----END CERTIFICATE-----
+
+# Issuer: CN=Baltimore CyberTrust Root O=Baltimore OU=CyberTrust
+# Subject: CN=Baltimore CyberTrust Root O=Baltimore OU=CyberTrust
+# Label: "Baltimore CyberTrust Root"
+# Serial: 33554617
+# MD5 Fingerprint: ac:b6:94:a5:9c:17:e0:d7:91:52:9b:b1:97:06:a6:e4
+# SHA1 Fingerprint: d4:de:20:d0:5e:66:fc:53:fe:1a:50:88:2c:78:db:28:52:ca:e4:74
+# SHA256 Fingerprint: 16:af:57:a9:f6:76:b0:ab:12:60:95:aa:5e:ba:de:f2:2a:b3:11:19:d6:44:ac:95:cd:4b:93:db:f3:f2:6a:eb
+-----BEGIN CERTIFICATE-----
+MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ
+RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD
+VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX
+DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y
+ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy
+VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr
+mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr
+IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK
+mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu
+XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy
+dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye
+jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1
+BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3
+DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92
+9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx
+jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0
+Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz
+ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS
+R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
+-----END CERTIFICATE-----
+
+# Issuer: CN=Amazon Root CA 1 O=Amazon
+# Subject: CN=Amazon Root CA 1 O=Amazon
+# Label: "Amazon Root CA 1"
+# Serial: 143266978916655856878034712317230054538369994
+# MD5 Fingerprint: 43:c6:bf:ae:ec:fe:ad:2f:18:c6:88:68:30:fc:c8:e6
+# SHA1 Fingerprint: 8d:a7:f9:65:ec:5e:fc:37:91:0f:1c:6e:59:fd:c1:cc:6a:6e:de:16
+# SHA256 Fingerprint: 8e:cd:e6:88:4f:3d:87:b1:12:5b:a3:1a:c3:fc:b1:3d:70:16:de:7f:57:cc:90:4f:e1:cb:97:c6:ae:98:19:6e
+-----BEGIN CERTIFICATE-----
+MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsF
+ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6
+b24gUm9vdCBDQSAxMB4XDTE1MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTEL
+MAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv
+b3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJ4gHHKeNXj
+ca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgHFzZM
+9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qw
+IFAGbHrQgLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6
+VOujw5H5SNz/0egwLX0tdHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L
+93FcXmn/6pUCyziKrlA4b9v7LWIbxcceVOF34GfID5yHI9Y/QCB/IIDEgEw+OyQm
+jgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
+AYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3DQEBCwUA
+A4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDI
+U5PMCCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUs
+N+gDS63pYaACbvXy8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vv
+o/ufQJVtMVT8QtPHRh8jrdkPSHCa2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU
+5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2xJNDd2ZhwLnoQdeXeGADbkpy
+rqXRfboQnoZsG4q5WTP468SQvvG5
+-----END CERTIFICATE-----
+
+# Issuer: CN=DigiCert Global Root CA O=DigiCert Inc OU=www.digicert.com
+# Subject: CN=DigiCert Global Root CA O=DigiCert Inc OU=www.digicert.com
+# Label: "DigiCert Global Root CA"
+# Serial: 10944719598952040374951832963794454346
+# MD5 Fingerprint: 79:e4:a9:84:0d:7d:3a:96:d7:c0:4f:e2:43:4c:89:2e
+# SHA1 Fingerprint: a8:98:5d:3a:65:e5:e5:c4:b2:d7:d6:6d:40:c6:dd:2f:b1:9c:54:36
+# SHA256 Fingerprint: 43:48:a0:e9:44:4c:78:cb:26:5e:05:8d:5e:89:44:b4:d8:4f:96:62:bd:26:db:25:7f:89:34:a4:43:c7:01:61
+-----BEGIN CERTIFICATE-----
+MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
+QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT
+MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
+b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG
+9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB
+CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97
+nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt
+43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P
+T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4
+gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO
+BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR
+TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw
+DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr
+hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg
+06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF
+PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls
+YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
+CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
+-----END CERTIFICATE-----
+
diff --git a/projects/chardet/build b/projects/chardet/build
new file mode 100644
index 0000000..0747718
--- /dev/null
+++ b/projects/chardet/build
@@ -0,0 +1,14 @@
+#!/bin/bash
+[% c("var/set_default_env") -%]
+
+tar xvf [% project %]-[% c('version') %].tar.gz
+
+mkdir -p /var/tmp/dist/
+cd /var/tmp/dist/
+
+cp -a $rootdir/[% project %]*/[% project %] ./[% project %]
+
+[% c('tar', {
+ tar_src => '.',
+ tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+ }) %]
diff --git a/projects/chardet/config b/projects/chardet/config
new file mode 100644
index 0000000..94884fb
--- /dev/null
+++ b/projects/chardet/config
@@ -0,0 +1,11 @@
+# vim: filetype=yaml sw=2
+version: 3.0.4
+git_url: https://github.com/chardet/chardet.git
+git_hash: 9b8c5c2fb118d76c6beeab9affd01c332732a530
+# TODO: This Git repo doesn't use GPG sigs. We should pester them about that.
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
+var:
+ container:
+ use_container: 1
+input_files:
+ - project: container-image
diff --git a/projects/dns/build b/projects/dns/build
new file mode 100644
index 0000000..c610ada
--- /dev/null
+++ b/projects/dns/build
@@ -0,0 +1,17 @@
+#!/bin/bash
+[% c("var/set_default_env") -%]
+
+shopt -s globstar
+
+unzip dnspython-[% c('version') %].zip
+
+mkdir -p /var/tmp/dist/[% project %]
+
+cd $rootdir/dnspython*/[% project %]
+cp --parents **/*.py /var/tmp/dist/[% project %]/
+
+cd /var/tmp/dist/
+[% c('tar', {
+ tar_src => '.',
+ tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+ }) %]
diff --git a/projects/dns/config b/projects/dns/config
new file mode 100644
index 0000000..e18fc85
--- /dev/null
+++ b/projects/dns/config
@@ -0,0 +1,11 @@
+# vim: filetype=yaml sw=2
+version: 1.16.0
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
+var:
+ container:
+ use_container: 1
+input_files:
+ - project: container-image
+ - URL: https://files.pythonhosted.org/packages/source/d/dnspython/dnspython-[% c("version") %].zip
+ sha256sum: 36c5e8e38d4369a08b6780b7f27d790a292b2b08eea01607865bf0936c558e01
+ # TODO: This package uses GPG sigs; we should switch from SHA256 hash to GPG verification.
diff --git a/projects/ecdsa/build b/projects/ecdsa/build
new file mode 100644
index 0000000..0747718
--- /dev/null
+++ b/projects/ecdsa/build
@@ -0,0 +1,14 @@
+#!/bin/bash
+[% c("var/set_default_env") -%]
+
+tar xvf [% project %]-[% c('version') %].tar.gz
+
+mkdir -p /var/tmp/dist/
+cd /var/tmp/dist/
+
+cp -a $rootdir/[% project %]*/[% project %] ./[% project %]
+
+[% c('tar', {
+ tar_src => '.',
+ tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+ }) %]
diff --git a/projects/ecdsa/config b/projects/ecdsa/config
new file mode 100644
index 0000000..e4ee567
--- /dev/null
+++ b/projects/ecdsa/config
@@ -0,0 +1,11 @@
+# vim: filetype=yaml sw=2
+version: 0.13.2
+git_url: https://github.com/warner/python-ecdsa.git
+git_hash: bb359d32e93acc3eb4d216aff4ba0e7531599cfb
+# TODO: This Git repo doesn't use GPG sigs. We should pester them about that.
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
+var:
+ container:
+ use_container: 1
+input_files:
+ - project: container-image
diff --git a/projects/electrum-nmc/build b/projects/electrum-nmc/build
new file mode 100644
index 0000000..8371744
--- /dev/null
+++ b/projects/electrum-nmc/build
@@ -0,0 +1,42 @@
+#!/bin/sh
+[% c("var/set_default_env") -%]
+mkdir -p /var/tmp/build/[% project %]
+tar -C /var/tmp/build/[% project %] -xf [% project %]-[% c("version") %].tar.gz
+
+cd /var/tmp/build/[% project %]/[% project %]-*
+
+mkdir packages
+cd packages
+
+[% FOREACH dep = ['aiohttp', 'aiohttp_socks', 'aiorpcx', 'async_timeout', 'attr', 'certifi', 'chardet', 'dns', 'ecdsa', 'idna', 'idna_ssl', 'jsonrpclib', 'multidict', 'pyaes', 'six', 'typing_extensions', 'yarl'] -%]
+ tar -C . -xf $rootdir/[% c('input_files_by_name/' _ dep) %]
+[% END -%]
+
+mkdir -p /var/tmp/dist/
+cd /var/tmp/dist/
+
+cp -a /var/tmp/build/[% project %]/[% project %]* ./Electrum-NMC
+
+cd ./Electrum-NMC
+# Remove GUI, since it's not used in Tor Browser.
+rm -r electrum_nmc/electrum/gui/
+# Remove plugins, since they're not used in Tor Browser.
+rm -r electrum_nmc/electrum/plugins/*/
+# Remove wallet functionality, since it's not used in Tor Browser.
+mv electrum_nmc/electrum/null_impl/null_wallet/*.py electrum_nmc/electrum/
+rm -r electrum_nmc/electrum/null_impl/
+# Remove some other files that aren't needed. We have to leave
+# electrum-nmc.desktop there, because it's used in run_electrum_nmc's is_local
+# detection.
+rm -r .git*
+rm -r .travis*
+rm -r contrib/
+rm -r electrum_nmc/electrum/tests/
+rm -r pubkeys
+rm -r tox.ini
+cd ../
+
+[% c('tar', {
+ tar_src => '.',
+ tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+ }) %]
diff --git a/projects/electrum-nmc/config b/projects/electrum-nmc/config
new file mode 100644
index 0000000..57cabe5
--- /dev/null
+++ b/projects/electrum-nmc/config
@@ -0,0 +1,48 @@
+# vim: filetype=yaml sw=2
+filename: 'Electrum-NMC-[% c("version") %]-[% c("var/build_id") %].tar.gz'
+version: 3.3.8
+git_url: https://github.com/namecoin/electrum-nmc.git
+# Note: this Git hash has a couple of fixes on top of the 3.3.8 tag, which
+# aren't yet in a release tag.
+git_hash: 74b87da8f2ddbbf33c23cc8e63b0e1515f427d86
+# TODO: This Git repo uses GPG sigs; we should switch from commit hash to GPG verification.
+var:
+ container:
+ use_container: 1
+
+input_files:
+ - project: container-image
+ - project: aiohttp
+ name: aiohttp
+ - project: aiohttp_socks
+ name: aiohttp_socks
+ - project: aiorpcx
+ name: aiorpcx
+ - project: async_timeout
+ name: async_timeout
+ - project: attr
+ name: attr
+ - project: certifi
+ name: certifi
+ - project: chardet
+ name: chardet
+ - project: dns
+ name: dns
+ - project: ecdsa
+ name: ecdsa
+ - project: idna
+ name: idna
+ - project: idna_ssl
+ name: idna_ssl
+ - project: jsonrpclib
+ name: jsonrpclib
+ - project: multidict
+ name: multidict
+ - project: pyaes
+ name: pyaes
+ - project: six
+ name: six
+ - project: typing_extensions
+ name: typing_extensions
+ - project: yarl
+ name: yarl
diff --git a/projects/firefox/build b/projects/firefox/build
index 5179634..b42b301 100644
--- a/projects/firefox/build
+++ b/projects/firefox/build
@@ -92,11 +92,21 @@ fi
export LDFLAGS="-Wl,--no-insert-timestamp"
[% END -%]
+[% IF c("var/namecoin") %]
+ patch -p1 < $rootdir/namecoin-etld.patch
+[% END -%]
+
[% IF ! c("var/android") %]
# Place a copy of the Tor Launcher sources under browser/extensions
tar -C browser/extensions -xf $rootdir/[% c('input_files_by_name/tor-launcher') %]
[% END -%]
+[% IF c("var/namecoin") %]
+ pushd toolkit/torproject/torbutton
+ patch -p1 < $rootdir/namecoin-torbutton.patch
+ popd
+[% END %]
+
rm -f configure
rm -f js/src/configure
diff --git a/projects/firefox/config b/projects/firefox/config
index c6f840b..0931a3f 100644
--- a/projects/firefox/config
+++ b/projects/firefox/config
@@ -182,3 +182,8 @@ input_files:
- project: tba-translation
name: tba-translation
enable: '[% c("var/android") %]'
+ - filename: namecoin-torbutton.patch
+ enable: '[% c("var/namecoin") %]'
+ # TorButton patch authored by Arthur Edelstein, from https://github.com/arthuredelstein/torbutton/ branch 2.1.10-namecoin
+ - filename: namecoin-etld.patch
+ enable: '[% c("var/namecoin") %]'
diff --git a/projects/firefox/namecoin-etld.patch b/projects/firefox/namecoin-etld.patch
new file mode 100644
index 0000000..4a97f99
--- /dev/null
+++ b/projects/firefox/namecoin-etld.patch
@@ -0,0 +1,25 @@
+diff --git a/mobile/android/app/src/main/assets/publicsuffixlist b/mobile/android/app/src/main/assets/publicsuffixlist
+index 7f834b1..6874b40 100644
+--- a/mobile/android/app/src/main/assets/publicsuffixlist
++++ b/mobile/android/app/src/main/assets/publicsuffixlist
+@@ -3005,6 +3005,8 @@ edu.mn
+ gov.mn
+ london
+ fashion
++onion
++bit.onion
+ creditunion
+ vision
+ eurovision
+diff --git a/netwerk/dns/effective_tld_names.dat b/netwerk/dns/effective_tld_names.dat
+index 9dd962a..3402b20 100644
+--- a/netwerk/dns/effective_tld_names.dat
++++ b/netwerk/dns/effective_tld_names.dat
+@@ -5480,6 +5480,7 @@ pro.om
+
+ // onion : https://tools.ietf.org/html/rfc7686
+ onion
++bit.onion
+
+ // org : https://en.wikipedia.org/wiki/.org
+ org
diff --git a/projects/firefox/namecoin-torbutton.patch b/projects/firefox/namecoin-torbutton.patch
new file mode 100644
index 0000000..11cf7a1
--- /dev/null
+++ b/projects/firefox/namecoin-torbutton.patch
@@ -0,0 +1,105 @@
+diff --git a/chrome/content/tor-circuit-display.js b/chrome/content/tor-circuit-display.js
+index 5ecbe7d..f771150 100644
+--- a/chrome/content/tor-circuit-display.js
++++ b/chrome/content/tor-circuit-display.js
+@@ -49,7 +49,11 @@ let credentialsToNodeDataMap = new Map(),
+ knownCircuitIDs = new Map(),
+ // A mutable map that records the SOCKS credentials for the
+ // latest channels for each browser + domain.
+- browserToCredentialsMap = new Map();
++ browserToCredentialsMap = new Map(),
++ // A mutable map from stream id to .bit[.onion] domains
++ bitTargets = {},
++ // A mutable map from .bit[.onion] domains to .onion domains.
++ bitToOnionMap = {};
+
+ // __trimQuotes(s)__.
+ // Removes quotation marks around a quoted string.
+@@ -126,6 +130,28 @@ let getCircuitStatusByID = async function (aController, circuitID) {
+ return null;
+ };
+
++// __collectBitTargets(aContoller)__.
++// Watches for STREAM NEW events. When a NEW event occurs, we will see
++// the stream's target domain. If that target is a .bit domain, then
++// we want to be sure to record this so we can later record if it is
++// remapped to a .onion domain.
++let collectBitTargets = function (aController) {
++ return aController.watchEvent(
++ "STREAM",
++ streamEvent => streamEvent.StreamStatus === "NEW",
++ async (streamEvent) => {
++ logger.eclog(3, "new streamEvent:" + JSON.stringify(streamEvent));
++ if (streamEvent && streamEvent.StreamID && streamEvent.Target) {
++ let targetDomain = streamEvent.Target.split(":")[0];
++ if (targetDomain.endsWith(".bit") ||
++ targetDomain.endsWith(".bit.onion")) {
++ bitTargets[streamEvent.StreamID] = Services.eTLD.getBaseDomainFromHost(targetDomain);
++ logger.eclog(3, "stream on .bit domain: " + targetDomain);
++ }
++ }
++ });
++};
++
+ // __collectIsolationData(aController, updateUI)__.
+ // Watches for STREAM SENTCONNECT events. When a SENTCONNECT event occurs, then
+ // we assume isolation settings (SOCKS username+password) are now fixed for the
+@@ -139,6 +165,15 @@ let collectIsolationData = function (aController, updateUI) {
+ "STREAM",
+ streamEvent => streamEvent.StreamStatus === "SENTCONNECT",
+ async (streamEvent) => {
++ logger.eclog(3, "sentconnect streamEvent:" + JSON.stringify(streamEvent));
++ // Collect any stream target that might be an onion.
++ if (streamEvent && streamEvent.StreamID && streamEvent.Target) {
++ let targetDomain = streamEvent.Target.split(":")[0];
++ if (targetDomain.endsWith(".onion")) {
++ bitToOnionMap[bitTargets[streamEvent.StreamID]] = targetDomain;
++ logger.eclog(3, "mapped " + bitTargets[streamEvent.StreamID] + " to " + targetDomain);
++ }
++ }
+ if (!knownCircuitIDs.get(streamEvent.CircuitID)) {
+ logger.eclog(3, "streamEvent.CircuitID: " + streamEvent.CircuitID);
+ knownCircuitIDs.set(streamEvent.CircuitID, true);
+@@ -306,12 +341,14 @@ let updateCircuitDisplay = function () {
+ (i === 0 && nodeData[0].type !== "bridge") ?
+ ["span", { class: "circuit-guard-info" }, uiString("guard")] : null);
+ }
+- if (domain.endsWith(".onion")) {
++ logger.eclog(3, "bit to onion map:" + JSON.stringify(bitToOnionMap) + ", domain: " + domain);
++ let mappedOnion = bitToOnionMap[domain];
++ if (domain.endsWith(".onion") || mappedOnion) {
+ for (let i = 0; i < 3; ++i) {
+ li(uiString("relay"));
+ }
+ }
+- li(domain);
++ li(domain, " ", mappedOnion ? ["span", { class: "circuit-ip-address" }, mappedOnion] : null);
+ // Hide the note about guards if we are using a bridge.
+ document.getElementById("circuit-guard-note-container").style.display =
+ (nodeData[0].type === "bridge") ? "none" : "block";
+@@ -418,6 +455,7 @@ let setupDisplay = function (ipcFile, host, port, password, enablePrefName) {
+ stopCollectingIsolationData = null,
+ stopCollectingBrowserCredentials = null,
+ stopEnsuringCorrectPopupDimensions = null,
++ stopCollectingBitTargets = null,
+ stop = function() {
+ syncDisplayWithSelectedTab(false);
+ if (myController) {
+@@ -430,6 +468,9 @@ let setupDisplay = function (ipcFile, host, port, password, enablePrefName) {
+ if (stopEnsuringCorrectPopupDimensions) {
+ stopEnsuringCorrectPopupDimensions();
+ }
++ if (stopCollectingBitTargets) {
++ stopCollectingBitTargets();
++ }
+ myController = null;
+ }
+ },
+@@ -444,6 +485,7 @@ let setupDisplay = function (ipcFile, host, port, password, enablePrefName) {
+ stop();
+ });
+ syncDisplayWithSelectedTab(true);
++ stopCollectingBitTargets = collectBitTargets(myController);
+ stopCollectingIsolationData = collectIsolationData(myController, updateCircuitDisplay);
+ stopCollectingBrowserCredentials = collectBrowserCredentials();
+ stopEnsuringCorrectPopupDimensions = ensureCorrectPopupDimensions();
diff --git a/projects/goansicolor/config b/projects/goansicolor/config
new file mode 100644
index 0000000..6d1a73e
--- /dev/null
+++ b/projects/goansicolor/config
@@ -0,0 +1,16 @@
+version: '[% c("abbrev") %]'
+git_url: https://github.com/shiena/ansicolor.git
+git_hash: a422bbe96644373c5753384a59d678f7d261ff10
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+
+build: '[% c("projects/go/var/build_go_lib") %]'
+
+var:
+ container:
+ use_container: 1
+ go_lib: github.com/shiena/ansicolor
+
+input_files:
+ - project: container-image
+ - name: go
+ project: go
diff --git a/projects/gobtcd/config b/projects/gobtcd/config
new file mode 100644
index 0000000..56dcca4
--- /dev/null
+++ b/projects/gobtcd/config
@@ -0,0 +1,32 @@
+version: '[% c("abbrev") %]'
+git_url: https://github.com/namecoin/btcd.git
+git_hash: 6cfad711d4ee7367b3ab9dc572097438dbca56eb
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+
+build: '[% c("projects/go/var/build_go_lib") %]'
+
+var:
+ container:
+ use_container: 1
+ go_lib: github.com/namecoin/btcd
+ go_lib_install:
+ - github.com/namecoin/btcd/btcjson
+ - github.com/namecoin/btcd/rpcclient
+ go_lib_deps:
+ - gobtclog
+ - gobtcutil
+ - gosocks
+ - gowebsocket
+
+input_files:
+ - project: container-image
+ - name: go
+ project: go
+ - name: gobtclog
+ project: gobtclog
+ - name: gobtcutil
+ project: gobtcutil
+ - name: gosocks
+ project: gosocks
+ - name: gowebsocket
+ project: gowebsocket
diff --git a/projects/gobtcd2/config b/projects/gobtcd2/config
new file mode 100644
index 0000000..5324737
--- /dev/null
+++ b/projects/gobtcd2/config
@@ -0,0 +1,32 @@
+# vim: filetype=yaml sw=2
+
+# You're probably wondering why gobtcd2 is a thing, rather than being part of
+# gobtcd. gobtcd builds the btcjson and rpcclient subpackages of btcd.
+# gobtcd2 builds the btcec, chaincfg, chaincfg/chainhash, and wire subpackages
+# of btcd. The former set depends on gobtcutil, which depends on the latter
+# set. This is fine for the dependency management done by "go get", which
+# operates on a per-package level rather than a per-repo level. Alas, since
+# rbm instead operates on a per-repo level (since each project is one repo),
+# splitting it up was necessary.
+
+version: '[% c("abbrev") %]'
+git_url: '[% pc("gobtcd", "git_url") %]'
+git_hash: '[% pc("gobtcd", "git_hash") %]'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+
+build: '[% c("projects/go/var/build_go_lib") %]'
+
+var:
+ container:
+ use_container: 1
+ go_lib: github.com/btcsuite/btcd
+ go_lib_install:
+ - github.com/btcsuite/btcd/btcec
+ - github.com/btcsuite/btcd/chaincfg
+ - github.com/btcsuite/btcd/chaincfg/chainhash
+ - github.com/btcsuite/btcd/wire
+
+input_files:
+ - project: container-image
+ - name: go
+ project: go
diff --git a/projects/gobtclog/config b/projects/gobtclog/config
new file mode 100644
index 0000000..9fcb6c6
--- /dev/null
+++ b/projects/gobtclog/config
@@ -0,0 +1,16 @@
+version: '[% c("abbrev") %]'
+git_url: https://github.com/btcsuite/btclog.git
+git_hash: 84c8d2346e9fc8c7b947e243b9c24e6df9fd206a
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+
+build: '[% c("projects/go/var/build_go_lib") %]'
+
+var:
+ container:
+ use_container: 1
+ go_lib: github.com/btcsuite/btclog
+
+input_files:
+ - project: container-image
+ - name: go
+ project: go
diff --git a/projects/gobtcutil/config b/projects/gobtcutil/config
new file mode 100644
index 0000000..63a8f90
--- /dev/null
+++ b/projects/gobtcutil/config
@@ -0,0 +1,23 @@
+version: '[% c("abbrev") %]'
+git_url: https://github.com/btcsuite/btcutil.git
+git_hash: 9e5f4b9a998d263e3ce9c56664a7816001ac8000
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+
+build: '[% c("projects/go/var/build_go_lib") %]'
+
+var:
+ container:
+ use_container: 1
+ go_lib: github.com/btcsuite/btcutil
+ go_lib_deps:
+ - gobtcd2
+ - goxcryptoripemd160
+
+input_files:
+ - project: container-image
+ - name: go
+ project: go
+ - name: gobtcd2
+ project: gobtcd2
+ - name: goxcryptoripemd160
+ project: goxcryptoripemd160
diff --git a/projects/gobuildinfo/config b/projects/gobuildinfo/config
new file mode 100644
index 0000000..5ca103c
--- /dev/null
+++ b/projects/gobuildinfo/config
@@ -0,0 +1,31 @@
+version: '[% c("abbrev") %]'
+git_url: https://github.com/hlandau/buildinfo.git
+git_hash: 337a29b5499734e584d4630ce535af64c5fe7813
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+
+build: '[% c("projects/go/var/build_go_lib") %]'
+
+var:
+ container:
+ use_container: 1
+ go_lib: github.com/hlandau/buildinfo
+ go_lib_deps:
+ - goeasyconfig
+ build_go_lib_pre: |
+ [% pc(c('var/compiler'), 'var/setup', { compiler_tarfile => c('input_files_by_name/' _ c('var/compiler')) }) %]
+
+ tar -C /var/tmp/dist -xf $rootdir/[% c('input_files_by_name/binutils') %]
+ export PATH="/var/tmp/dist/binutils/bin:$PATH"
+
+ export CGO_ENABLED=1
+
+input_files:
+ - project: container-image
+ - name: go
+ project: go
+ - name: '[% c("var/compiler") %]'
+ project: '[% c("var/compiler") %]'
+ - name: binutils
+ project: binutils
+ - name: goeasyconfig
+ project: goeasyconfig
diff --git a/projects/goconfigurable/config b/projects/goconfigurable/config
new file mode 100644
index 0000000..07bace5
--- /dev/null
+++ b/projects/goconfigurable/config
@@ -0,0 +1,16 @@
+version: '[% c("abbrev") %]'
+git_url: https://github.com/hlandau/configurable.git
+git_hash: 34642c4c8cbf56801d0e34f0e82187305983ac26
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+
+build: '[% c("projects/go/var/build_go_lib") %]'
+
+var:
+ container:
+ use_container: 1
+ go_lib: gopkg.in/hlandau/configurable.v1
+
+input_files:
+ - project: container-image
+ - name: go
+ project: go
diff --git a/projects/godegoutils/config b/projects/godegoutils/config
new file mode 100644
index 0000000..f4f380a
--- /dev/null
+++ b/projects/godegoutils/config
@@ -0,0 +1,22 @@
+version: '[% c("abbrev") %]'
+git_url: https://github.com/hlandau/degoutils.git
+git_hash: 8fa2440b63444dad556d76366f1c3ee070c8a577
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+
+build: '[% c("projects/go/var/build_go_lib") %]'
+
+var:
+ container:
+ use_container: 1
+ go_lib: github.com/hlandau/degoutils
+ go_lib_install:
+ - github.com/hlandau/degoutils/net
+ go_lib_deps:
+ - goxnet
+
+input_files:
+ - project: container-image
+ - name: go
+ project: go
+ - name: goxnet
+ project: goxnet
diff --git a/projects/godexlogconfig/config b/projects/godexlogconfig/config
new file mode 100644
index 0000000..0dccbe2
--- /dev/null
+++ b/projects/godexlogconfig/config
@@ -0,0 +1,40 @@
+version: '[% c("abbrev") %]'
+git_url: https://github.com/hlandau/dexlogconfig.git
+git_hash: 244f29bd260884993b176cd14ef2f7631f6f3c18
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+
+build: '[% c("projects/go/var/build_go_lib") %]'
+
+var:
+ container:
+ use_container: 1
+ go_lib: github.com/hlandau/dexlogconfig
+ go_lib_deps:
+ - gobuildinfo
+ - goeasyconfig
+ - gosystemd
+ - goxlog
+ build_go_lib_pre: |
+ [% pc(c('var/compiler'), 'var/setup', { compiler_tarfile => c('input_files_by_name/' _ c('var/compiler')) }) %]
+
+ tar -C /var/tmp/dist -xf $rootdir/[% c('input_files_by_name/binutils') %]
+ export PATH="/var/tmp/dist/binutils/bin:$PATH"
+
+ export CGO_ENABLED=1
+
+input_files:
+ - project: container-image
+ - name: go
+ project: go
+ - name: '[% c("var/compiler") %]'
+ project: '[% c("var/compiler") %]'
+ - name: binutils
+ project: binutils
+ - name: goxlog
+ project: goxlog
+ - name: goeasyconfig
+ project: goeasyconfig
+ - name: gosystemd
+ project: gosystemd
+ - name: gobuildinfo
+ project: gobuildinfo
diff --git a/projects/godns/config b/projects/godns/config
new file mode 100644
index 0000000..a005c32
--- /dev/null
+++ b/projects/godns/config
@@ -0,0 +1,26 @@
+version: 1.1.22
+git_url: https://github.com/miekg/dns.git
+git_hash: 1e224ff5dead8366ed6fcdcb832794be42e73f0e
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+
+build: '[% c("projects/go/var/build_go_lib") %]'
+
+var:
+ container:
+ use_container: 1
+ go_lib: github.com/miekg/dns
+ go_lib_deps:
+ - goxcryptoed25519
+ - goxnetip
+ - goxsysunix
+
+input_files:
+ - project: container-image
+ - name: go
+ project: go
+ - name: goxcryptoed25519
+ project: goxcryptoed25519
+ - name: goxnetip
+ project: goxnetip
+ - name: goxsysunix
+ project: goxsysunix
diff --git a/projects/goeasyconfig/config b/projects/goeasyconfig/config
new file mode 100644
index 0000000..a87283e
--- /dev/null
+++ b/projects/goeasyconfig/config
@@ -0,0 +1,35 @@
+version: 1.0.17
+git_url: https://github.com/hlandau/easyconfig.git
+git_hash: c31249162931b4963bbe6e501cccb60d23271a3f
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+
+build: '[% c("projects/go/var/build_go_lib") %]'
+
+var:
+ container:
+ use_container: 1
+ go_lib: gopkg.in/hlandau/easyconfig.v1
+ go_lib_deps:
+ - goconfigurable
+ - gosvcutils
+ - gotoml
+ - gopflag
+ - gokingpin
+ go_lib_install:
+ - gopkg.in/hlandau/easyconfig.v1
+ - gopkg.in/hlandau/easyconfig.v1/cflag
+
+input_files:
+ - project: container-image
+ - name: go
+ project: go
+ - name: goconfigurable
+ project: goconfigurable
+ - name: gosvcutils
+ project: gosvcutils
+ - name: gotoml
+ project: gotoml
+ - name: gopflag
+ project: gopflag
+ - name: gokingpin
+ project: gokingpin
diff --git a/projects/gogroupcache/config b/projects/gogroupcache/config
new file mode 100644
index 0000000..5646737
--- /dev/null
+++ b/projects/gogroupcache/config
@@ -0,0 +1,18 @@
+version: '[% c("abbrev") %]'
+git_url: https://github.com/golang/groupcache.git
+git_hash: 611e8accdfc92c4187d399e95ce826046d4c8d73
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+
+build: '[% c("projects/go/var/build_go_lib") %]'
+
+var:
+ container:
+ use_container: 1
+ go_lib: github.com/golang/groupcache
+ go_lib_install:
+ - github.com/golang/groupcache/lru
+
+input_files:
+ - project: container-image
+ - name: go
+ project: go
diff --git a/projects/goisatty/config b/projects/goisatty/config
new file mode 100644
index 0000000..0f5fc17
--- /dev/null
+++ b/projects/goisatty/config
@@ -0,0 +1,20 @@
+version: 0.0.10
+git_url: https://github.com/mattn/go-isatty.git
+git_hash: 88ba11cfdc67c7588b30042edf244b2875f892b6
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+
+build: '[% c("projects/go/var/build_go_lib") %]'
+
+var:
+ container:
+ use_container: 1
+ go_lib: github.com/mattn/go-isatty
+ go_lib_deps:
+ - goxsysunix
+
+input_files:
+ - project: container-image
+ - name: go
+ project: go
+ - name: goxsysunix
+ project: goxsysunix
diff --git a/projects/gokingpin/config b/projects/gokingpin/config
new file mode 100644
index 0000000..dd209f4
--- /dev/null
+++ b/projects/gokingpin/config
@@ -0,0 +1,23 @@
+version: 2.2.6
+git_url: https://github.com/alecthomas/kingpin.git
+git_hash: 947dcec5ba9c011838740e680966fd7087a71d0d
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+
+build: '[% c("projects/go/var/build_go_lib") %]'
+
+var:
+ container:
+ use_container: 1
+ go_lib: gopkg.in/alecthomas/kingpin.v2
+ go_lib_deps:
+ - gotemplate
+ - gounits
+
+input_files:
+ - project: container-image
+ - name: go
+ project: go
+ - name: gotemplate
+ project: gotemplate
+ - name: gounits
+ project: gounits
diff --git a/projects/gomadns/config b/projects/gomadns/config
new file mode 100644
index 0000000..a53f410
--- /dev/null
+++ b/projects/gomadns/config
@@ -0,0 +1,40 @@
+version: 2.0.1
+git_url: https://github.com/hlandau/madns.git
+git_hash: 26979b3e4b5aa3e0bd53cf0a014f9eaf43b578e3
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+
+build: '[% c("projects/go/var/build_go_lib") %]'
+
+var:
+ container:
+ use_container: 1
+ go_lib: gopkg.in/hlandau/madns.v2
+ go_lib_deps:
+ - godns
+ - gobuildinfo
+ - goxlog
+ go_lib_install:
+ - gopkg.in/hlandau/madns.v2
+ - gopkg.in/hlandau/madns.v2/merr
+ build_go_lib_pre: |
+ [% pc(c('var/compiler'), 'var/setup', { compiler_tarfile => c('input_files_by_name/' _ c('var/compiler')) }) %]
+
+ tar -C /var/tmp/dist -xf $rootdir/[% c('input_files_by_name/binutils') %]
+ export PATH="/var/tmp/dist/binutils/bin:$PATH"
+
+ export CGO_ENABLED=1
+
+input_files:
+ - project: container-image
+ - name: go
+ project: go
+ - name: '[% c("var/compiler") %]'
+ project: '[% c("var/compiler") %]'
+ - name: binutils
+ project: binutils
+ - name: godns
+ project: godns
+ - name: gobuildinfo
+ project: gobuildinfo
+ - name: goxlog
+ project: goxlog
diff --git a/projects/goncbtcjson/config b/projects/goncbtcjson/config
new file mode 100644
index 0000000..708bfc8
--- /dev/null
+++ b/projects/goncbtcjson/config
@@ -0,0 +1,20 @@
+version: '[% c("abbrev") %]'
+git_url: https://github.com/namecoin/ncbtcjson.git
+git_hash: 0d2f400334751d149ca21bfd4535c9d2274f7264
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+
+build: '[% c("projects/go/var/build_go_lib") %]'
+
+var:
+ container:
+ use_container: 1
+ go_lib: github.com/namecoin/ncbtcjson
+ go_lib_deps:
+ - gobtcd
+
+input_files:
+ - project: container-image
+ - name: go
+ project: go
+ - name: gobtcd
+ project: gobtcd
diff --git a/projects/goncrpcclient/config b/projects/goncrpcclient/config
new file mode 100644
index 0000000..122700c
--- /dev/null
+++ b/projects/goncrpcclient/config
@@ -0,0 +1,23 @@
+version: '[% c("abbrev") %]'
+git_url: https://github.com/namecoin/ncrpcclient.git
+git_hash: 858e1a5acd8b2da56462f50323633cdf2fe80977
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+
+build: '[% c("projects/go/var/build_go_lib") %]'
+
+var:
+ container:
+ use_container: 1
+ go_lib: github.com/namecoin/ncrpcclient
+ go_lib_deps:
+ - gobtcd
+ - goncbtcjson
+
+input_files:
+ - project: container-image
+ - name: go
+ project: go
+ - name: gobtcd
+ project: gobtcd
+ - name: goncbtcjson
+ project: goncbtcjson
diff --git a/projects/gopflag/config b/projects/gopflag/config
new file mode 100644
index 0000000..16141cc
--- /dev/null
+++ b/projects/gopflag/config
@@ -0,0 +1,16 @@
+version: '[% c("abbrev") %]'
+git_url: https://github.com/ogier/pflag.git
+git_hash: 45c278ab3607870051a2ea9040bb85fcb8557481
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+
+build: '[% c("projects/go/var/build_go_lib") %]'
+
+var:
+ container:
+ use_container: 1
+ go_lib: github.com/ogier/pflag
+
+input_files:
+ - project: container-image
+ - name: go
+ project: go
diff --git a/projects/gopretty/config b/projects/gopretty/config
new file mode 100644
index 0000000..a2ceecf
--- /dev/null
+++ b/projects/gopretty/config
@@ -0,0 +1,20 @@
+version: '[% c("abbrev") %]'
+git_url: https://github.com/kr/pretty.git
+git_hash: 71e7e49937503c662b9b636fd6b2c14b1aa818a5
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+
+build: '[% c("projects/go/var/build_go_lib") %]'
+
+var:
+ container:
+ use_container: 1
+ go_lib: github.com/kr/pretty
+ go_lib_deps:
+ - gotext
+
+input_files:
+ - project: container-image
+ - name: go
+ project: go
+ - name: gotext
+ project: gotext
diff --git a/projects/goservice/config b/projects/goservice/config
new file mode 100644
index 0000000..67eff54
--- /dev/null
+++ b/projects/goservice/config
@@ -0,0 +1,44 @@
+version: '[% c("abbrev") %]'
+git_url: https://github.com/hlandau/service.git
+git_hash: 0496f910e39ef577ba805f512f6e1b80d652c4b9
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+
+build: '[% c("projects/go/var/build_go_lib") %]'
+
+var:
+ container:
+ use_container: 1
+ go_lib: gopkg.in/hlandau/service.v2
+ go_lib_deps:
+ - gosvcutils
+ - goeasyconfig
+ build_go_lib_pre: |
+ [% pc(c('var/compiler'), 'var/setup', { compiler_tarfile => c('input_files_by_name/' _ c('var/compiler')) }) %]
+
+ tar -C /var/tmp/dist -xf $rootdir/[% c('input_files_by_name/binutils') %]
+ export PATH="/var/tmp/dist/binutils/bin:$PATH"
+
+ export CGO_ENABLED=1
+
+targets:
+ linux-i686:
+ var:
+ arch_deps:
+ - libcap-dev:i386
+ linux-x86_64:
+ var:
+ arch_deps:
+ - libcap-dev
+
+input_files:
+ - project: container-image
+ - name: go
+ project: go
+ - name: '[% c("var/compiler") %]'
+ project: '[% c("var/compiler") %]'
+ - name: binutils
+ project: binutils
+ - name: gosvcutils
+ project: gosvcutils
+ - name: goeasyconfig
+ project: goeasyconfig
diff --git a/projects/gosocks/config b/projects/gosocks/config
new file mode 100644
index 0000000..1d9a5a8
--- /dev/null
+++ b/projects/gosocks/config
@@ -0,0 +1,18 @@
+version: '[% c("abbrev") %]'
+git_url: https://github.com/btcsuite/go-socks.git
+git_hash: 4720035b7bfd2a9bb130b1c184f8bbe41b6f0d0f
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+
+build: '[% c("projects/go/var/build_go_lib") %]'
+
+var:
+ container:
+ use_container: 1
+ go_lib: github.com/btcsuite/go-socks
+ go_lib_install:
+ - github.com/btcsuite/go-socks/socks
+
+input_files:
+ - project: container-image
+ - name: go
+ project: go
diff --git a/projects/gosvcutils/config b/projects/gosvcutils/config
new file mode 100644
index 0000000..b941e05
--- /dev/null
+++ b/projects/gosvcutils/config
@@ -0,0 +1,47 @@
+version: 1.0.10
+git_url: https://github.com/hlandau/svcutils.git
+git_hash: c25dac49e50cbbcbef8c81b089f56156f4067729
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+
+build: '[% c("projects/go/var/build_go_lib") %]'
+
+var:
+ container:
+ use_container: 1
+ go_lib: gopkg.in/hlandau/svcutils.v1
+ go_lib_install:
+ - gopkg.in/hlandau/svcutils.v1
+ - gopkg.in/hlandau/svcutils.v1/caps
+ - gopkg.in/hlandau/svcutils.v1/chroot
+ - gopkg.in/hlandau/svcutils.v1/dupfd
+ - gopkg.in/hlandau/svcutils.v1/exepath
+ - gopkg.in/hlandau/svcutils.v1/passwd
+ - gopkg.in/hlandau/svcutils.v1/pidfile
+ - gopkg.in/hlandau/svcutils.v1/setuid
+ - gopkg.in/hlandau/svcutils.v1/systemd
+ build_go_lib_pre: |
+ [% pc(c('var/compiler'), 'var/setup', { compiler_tarfile => c('input_files_by_name/' _ c('var/compiler')) }) %]
+
+ tar -C /var/tmp/dist -xf $rootdir/[% c('input_files_by_name/binutils') %]
+ export PATH="/var/tmp/dist/binutils/bin:$PATH"
+
+ export CGO_ENABLED=1
+
+targets:
+ linux-i686:
+ var:
+ arch_deps:
+ - libcap-dev:i386
+ linux-x86_64:
+ var:
+ arch_deps:
+ - libcap-dev
+
+input_files:
+ - project: container-image
+ - name: go
+ project: go
+ - name: '[% c("var/compiler") %]'
+ project: '[% c("var/compiler") %]'
+ - name: binutils
+ project: binutils
diff --git a/projects/gosystemd/config b/projects/gosystemd/config
new file mode 100644
index 0000000..daa9f79
--- /dev/null
+++ b/projects/gosystemd/config
@@ -0,0 +1,29 @@
+version: 21
+git_url: https://github.com/coreos/go-systemd.git
+git_hash: d3cd4ed1dbcf5835feba465b180436db54f20228
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+
+build: '[% c("projects/go/var/build_go_lib") %]'
+
+var:
+ container:
+ use_container: 1
+ go_lib: github.com/coreos/go-systemd
+ go_lib_install:
+ - github.com/coreos/go-systemd/journal
+ build_go_lib_pre: |
+ [% pc(c('var/compiler'), 'var/setup', { compiler_tarfile => c('input_files_by_name/' _ c('var/compiler')) }) %]
+
+ tar -C /var/tmp/dist -xf $rootdir/[% c('input_files_by_name/binutils') %]
+ export PATH="/var/tmp/dist/binutils/bin:$PATH"
+
+ export CGO_ENABLED=1
+
+input_files:
+ - project: container-image
+ - name: go
+ project: go
+ - name: '[% c("var/compiler") %]'
+ project: '[% c("var/compiler") %]'
+ - name: binutils
+ project: binutils
diff --git a/projects/gotemplate/config b/projects/gotemplate/config
new file mode 100644
index 0000000..62cddc9
--- /dev/null
+++ b/projects/gotemplate/config
@@ -0,0 +1,16 @@
+version: '[% c("abbrev") %]'
+git_url: https://github.com/alecthomas/template.git
+git_hash: fb15b899a75114aa79cc930e33c46b577cc664b1
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+
+build: '[% c("projects/go/var/build_go_lib") %]'
+
+var:
+ container:
+ use_container: 1
+ go_lib: github.com/alecthomas/template
+
+input_files:
+ - project: container-image
+ - name: go
+ project: go
diff --git a/projects/gotext/config b/projects/gotext/config
new file mode 100644
index 0000000..5493329
--- /dev/null
+++ b/projects/gotext/config
@@ -0,0 +1,16 @@
+version: 0.1.0
+git_url: https://github.com/kr/text.git
+git_hash: e2ffdb16a802fe2bb95e2e35ff34f0e53aeef34f
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+
+build: '[% c("projects/go/var/build_go_lib") %]'
+
+var:
+ container:
+ use_container: 1
+ go_lib: github.com/kr/text
+
+input_files:
+ - project: container-image
+ - name: go
+ project: go
diff --git a/projects/gotoml/config b/projects/gotoml/config
new file mode 100644
index 0000000..c40c582
--- /dev/null
+++ b/projects/gotoml/config
@@ -0,0 +1,16 @@
+version: '[% c("abbrev") %]'
+git_url: https://github.com/BurntSushi/toml.git
+git_hash: 3012a1dbe2e4bd1391d42b32f0577cb7bbc7f005
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+
+build: '[% c("projects/go/var/build_go_lib") %]'
+
+var:
+ container:
+ use_container: 1
+ go_lib: github.com/BurntSushi/toml
+
+input_files:
+ - project: container-image
+ - name: go
+ project: go
diff --git a/projects/gounits/config b/projects/gounits/config
new file mode 100644
index 0000000..8cf7395
--- /dev/null
+++ b/projects/gounits/config
@@ -0,0 +1,16 @@
+version: '[% c("abbrev") %]'
+git_url: https://github.com/alecthomas/units.git
+git_hash: f65c72e2690dc4b403c8bd637baf4611cd4c069b
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+
+build: '[% c("projects/go/var/build_go_lib") %]'
+
+var:
+ container:
+ use_container: 1
+ go_lib: github.com/alecthomas/units
+
+input_files:
+ - project: container-image
+ - name: go
+ project: go
diff --git a/projects/gowebsocket/config b/projects/gowebsocket/config
new file mode 100644
index 0000000..1e103d3
--- /dev/null
+++ b/projects/gowebsocket/config
@@ -0,0 +1,16 @@
+version: '[% c("abbrev") %]'
+git_url: https://github.com/btcsuite/websocket.git
+git_hash: 31079b6807923eb23992c421b114992b95131b55
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+
+build: '[% c("projects/go/var/build_go_lib") %]'
+
+var:
+ container:
+ use_container: 1
+ go_lib: github.com/btcsuite/websocket
+
+input_files:
+ - project: container-image
+ - name: go
+ project: go
diff --git a/projects/goxcryptoed25519/config b/projects/goxcryptoed25519/config
new file mode 100644
index 0000000..d065de1
--- /dev/null
+++ b/projects/goxcryptoed25519/config
@@ -0,0 +1,19 @@
+# vim: filetype=yaml sw=2
+version: '[% c("abbrev") %]'
+git_url: '[% pc("goxcrypto", "git_url") %]'
+git_hash: '[% pc("goxcrypto", "git_hash") %]'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+
+build: '[% c("projects/go/var/build_go_lib") %]'
+
+var:
+ container:
+ use_container: 1
+ go_lib: golang.org/x/crypto
+ go_lib_install:
+ - golang.org/x/crypto/ed25519
+
+input_files:
+ - project: container-image
+ - name: go
+ project: go
diff --git a/projects/goxcryptoripemd160/config b/projects/goxcryptoripemd160/config
new file mode 100644
index 0000000..b14e71d
--- /dev/null
+++ b/projects/goxcryptoripemd160/config
@@ -0,0 +1,19 @@
+# vim: filetype=yaml sw=2
+version: '[% c("abbrev") %]'
+git_url: '[% pc("goxcrypto", "git_url") %]'
+git_hash: '[% pc("goxcrypto", "git_hash") %]'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+
+build: '[% c("projects/go/var/build_go_lib") %]'
+
+var:
+ container:
+ use_container: 1
+ go_lib: golang.org/x/crypto
+ go_lib_install:
+ - golang.org/x/crypto/ripemd160
+
+input_files:
+ - project: container-image
+ - name: go
+ project: go
diff --git a/projects/goxlog/config b/projects/goxlog/config
new file mode 100644
index 0000000..fa47d30
--- /dev/null
+++ b/projects/goxlog/config
@@ -0,0 +1,23 @@
+version: 1.0.0
+git_url: https://github.com/hlandau/xlog.git
+git_hash: 197ef798aed28e08ed3e176e678fda81be993a31
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+
+build: '[% c("projects/go/var/build_go_lib") %]'
+
+var:
+ container:
+ use_container: 1
+ go_lib: github.com/hlandau/xlog
+ go_lib_deps:
+ - goisatty
+ - goansicolor
+
+input_files:
+ - project: container-image
+ - name: go
+ project: go
+ - name: goisatty
+ project: goisatty
+ - name: goansicolor
+ project: goansicolor
diff --git a/projects/goxnetip/config b/projects/goxnetip/config
new file mode 100644
index 0000000..db1c85e
--- /dev/null
+++ b/projects/goxnetip/config
@@ -0,0 +1,24 @@
+# vim: filetype=yaml sw=2
+version: '[% c("abbrev") %]'
+git_url: '[% pc("goxnet", "git_url") %]'
+git_hash: '[% pc("goxnet", "git_hash") %]'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+
+build: '[% c("projects/go/var/build_go_lib") %]'
+
+var:
+ container:
+ use_container: 1
+ go_lib: golang.org/x/net
+ go_lib_install:
+ - golang.org/x/net/ipv4
+ - golang.org/x/net/ipv6
+ go_lib_deps:
+ - goxsysunix
+
+input_files:
+ - project: container-image
+ - name: go
+ project: go
+ - name: goxsysunix
+ project: goxsysunix
diff --git a/projects/goxsysunix/config b/projects/goxsysunix/config
new file mode 100644
index 0000000..a2fe03c
--- /dev/null
+++ b/projects/goxsysunix/config
@@ -0,0 +1,19 @@
+# vim: filetype=yaml sw=2
+version: '[% c("abbrev") %]'
+git_url: '[% pc("goxsys", "git_url") %]'
+git_hash: '[% pc("goxsys", "git_hash") %]'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+
+build: '[% c("projects/go/var/build_go_lib") %]'
+
+var:
+ container:
+ use_container: 1
+ go_lib: golang.org/x/sys
+ go_lib_install:
+ - golang.org/x/sys/unix
+
+input_files:
+ - project: container-image
+ - name: go
+ project: go
diff --git a/projects/idna/build b/projects/idna/build
new file mode 100644
index 0000000..0747718
--- /dev/null
+++ b/projects/idna/build
@@ -0,0 +1,14 @@
+#!/bin/bash
+[% c("var/set_default_env") -%]
+
+tar xvf [% project %]-[% c('version') %].tar.gz
+
+mkdir -p /var/tmp/dist/
+cd /var/tmp/dist/
+
+cp -a $rootdir/[% project %]*/[% project %] ./[% project %]
+
+[% c('tar', {
+ tar_src => '.',
+ tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+ }) %]
diff --git a/projects/idna/config b/projects/idna/config
new file mode 100644
index 0000000..c499a80
--- /dev/null
+++ b/projects/idna/config
@@ -0,0 +1,11 @@
+# vim: filetype=yaml sw=2
+version: 2.8
+git_url: https://github.com/kjd/idna.git
+git_hash: 1cdf175e259b299be76f49c3ddc8794214f9931f
+# TODO: This Git repo doesn't use GPG sigs. We should pester them about that.
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
+var:
+ container:
+ use_container: 1
+input_files:
+ - project: container-image
diff --git a/projects/idna_ssl/build b/projects/idna_ssl/build
new file mode 100644
index 0000000..6f65b22
--- /dev/null
+++ b/projects/idna_ssl/build
@@ -0,0 +1,14 @@
+#!/bin/bash
+[% c("var/set_default_env") -%]
+
+tar xvf [% project %]-[% c('version') %].tar.gz
+
+mkdir -p /var/tmp/dist/
+cd /var/tmp/dist/
+
+cp -a $rootdir/[% project %]*/[% project %].py ./[% project %].py
+
+[% c('tar', {
+ tar_src => '.',
+ tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+ }) %]
diff --git a/projects/idna_ssl/config b/projects/idna_ssl/config
new file mode 100644
index 0000000..7331027
--- /dev/null
+++ b/projects/idna_ssl/config
@@ -0,0 +1,11 @@
+# vim: filetype=yaml sw=2
+version: 1.1.0
+git_url: https://github.com/aio-libs/idna-ssl.git
+git_hash: 1ab8304810f8bd9a880c0a013276cddd3c6e9551
+# TODO: This Git repo uses GPG sigs; we should switch from commit hash to GPG verification.
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
+var:
+ container:
+ use_container: 1
+input_files:
+ - project: container-image
diff --git a/projects/jsonrpclib/build b/projects/jsonrpclib/build
new file mode 100644
index 0000000..0747718
--- /dev/null
+++ b/projects/jsonrpclib/build
@@ -0,0 +1,14 @@
+#!/bin/bash
+[% c("var/set_default_env") -%]
+
+tar xvf [% project %]-[% c('version') %].tar.gz
+
+mkdir -p /var/tmp/dist/
+cd /var/tmp/dist/
+
+cp -a $rootdir/[% project %]*/[% project %] ./[% project %]
+
+[% c('tar', {
+ tar_src => '.',
+ tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+ }) %]
diff --git a/projects/jsonrpclib/config b/projects/jsonrpclib/config
new file mode 100644
index 0000000..e5b469b
--- /dev/null
+++ b/projects/jsonrpclib/config
@@ -0,0 +1,11 @@
+# vim: filetype=yaml sw=2
+version: 0.4.0
+git_url: https://github.com/tcalmant/jsonrpclib.git
+git_hash: fe9fcf2c99973507f7055d6c9e05e155957c2549
+# TODO: This Git repo doesn't use GPG sigs. We should pester them about that.
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
+var:
+ container:
+ use_container: 1
+input_files:
+ - project: container-image
diff --git a/projects/multidict/build b/projects/multidict/build
new file mode 100644
index 0000000..e0f9400
--- /dev/null
+++ b/projects/multidict/build
@@ -0,0 +1,14 @@
+#!/bin/bash
+[% c("var/set_default_env") -%]
+
+tar xvf [% project %]-[% c('version') %].tar.gz
+
+mkdir -p /var/tmp/dist/[% project %]
+cd /var/tmp/dist/
+
+cp -a $rootdir/[% project %]*/[% project %]/*.py ./[% project %]/
+
+[% c('tar', {
+ tar_src => '.',
+ tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+ }) %]
diff --git a/projects/multidict/config b/projects/multidict/config
new file mode 100644
index 0000000..d242b08
--- /dev/null
+++ b/projects/multidict/config
@@ -0,0 +1,11 @@
+# vim: filetype=yaml sw=2
+version: 4.5.2
+git_url: https://github.com/aio-libs/multidict.git
+git_hash: bd40998bf220820a7d636d5f02912c8d4abcac23
+# TODO: This Git repo doesn't use GPG sigs. We should pester them about that.
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
+var:
+ container:
+ use_container: 1
+input_files:
+ - project: container-image
diff --git a/projects/ncdns/build b/projects/ncdns/build
new file mode 100644
index 0000000..5ec0bc8
--- /dev/null
+++ b/projects/ncdns/build
@@ -0,0 +1,31 @@
+#!/bin/bash
+[% c("var/set_default_env") -%]
+[% pc('go', 'var/setup', { go_tarfile => c('input_files_by_name/go') }) %]
+[% pc(c('var/compiler'), 'var/setup', { compiler_tarfile => c('input_files_by_name/' _ c('var/compiler')) }) %]
+
+tar -C /var/tmp/dist -xf $rootdir/[% c('input_files_by_name/binutils') %]
+export PATH="/var/tmp/dist/binutils/bin:$PATH"
+export CGO_ENABLED=1
+distdir=/var/tmp/dist/[% project %]
+mkdir -p $distdir
+
+[% FOREACH dep = c("var/go_lib_deps") -%]
+ tar -C /var/tmp/dist -xf [% c('input_files_by_name/' _ dep) %]
+[% END -%]
+
+mkdir -p $GOPATH/src/github.com/namecoin
+tar -C $GOPATH/src/github.com/namecoin -xf [% project %]-[% c('version') %].tar.gz
+mv $GOPATH/src/github.com/namecoin/ncdns-[% c('version') %] $GOPATH/src/github.com/namecoin/ncdns
+
+TAGS="-tags no_namecoin_tls"
+
+[% FOREACH inst IN c("var/go_lib_install") %]
+ go install $TAGS -ldflags '-s' [% inst %]
+[% END %]
+
+cd /var/tmp/dist
+
+[% c('tar', {
+ tar_src => [ 'gopath' ],
+ tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+}) %]
diff --git a/projects/ncdns/config b/projects/ncdns/config
new file mode 100644
index 0000000..0785e51
--- /dev/null
+++ b/projects/ncdns/config
@@ -0,0 +1,82 @@
+#version: 0.0.9
+# Using latest master branch because we need the stream isolation and
+# disable_namecoin_tlsa features. Once they're in a tagged release, we'll go
+# back to using a version number here.
+version: '[% c("abbrev") %]'
+git_url: https://github.com/namecoin/ncdns.git
+# Using latest master branch because we need the stream isolation and
+# disable_namecoin_tlsa features. Once they're in a tagged release, we'll go
+# back to using a hash that corresponds to a tag here.
+git_hash: 'ca0fe5552806a4275f38468c4d3fbcb2cba1cb79'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+
+var:
+ container:
+ use_container: 1
+ go_lib_deps:
+ - gogroupcache
+ - godegoutils
+ - godexlogconfig
+ - goncbtcjson
+ - goncrpcclient
+ - gobtcd
+ - gopretty
+ - godns
+ - gomadns
+ - goeasyconfig
+ - goservice
+ - goxnet
+ go_lib_install:
+ - github.com/namecoin/ncdns
+ - github.com/namecoin/ncdns/backend
+ - github.com/namecoin/ncdns/namecoin
+ - github.com/namecoin/ncdns/ncdomain
+ - github.com/namecoin/ncdns/ncdt
+ - github.com/namecoin/ncdns/rrtourl
+ - github.com/namecoin/ncdns/server
+ - github.com/namecoin/ncdns/testutil
+ - github.com/namecoin/ncdns/tlshook
+ - github.com/namecoin/ncdns/util
+
+targets:
+ linux-i686:
+ var:
+ arch_deps:
+ - libcap-dev:i386
+ linux-x86_64:
+ var:
+ arch_deps:
+ - libcap-dev
+
+input_files:
+ - project: container-image
+ - name: go
+ project: go
+ - name: '[% c("var/compiler") %]'
+ project: '[% c("var/compiler") %]'
+ - name: binutils
+ project: binutils
+ - name: godexlogconfig
+ project: godexlogconfig
+ - name: goeasyconfig
+ project: goeasyconfig
+ - name: goservice
+ project: goservice
+ - name: gogroupcache
+ project: gogroupcache
+ - name: goncbtcjson
+ project: goncbtcjson
+ - name: goncrpcclient
+ project: goncrpcclient
+ - name: gobtcd
+ project: gobtcd
+ - name: godns
+ project: godns
+ - name: gomadns
+ project: gomadns
+ - name: gopretty
+ project: gopretty
+ - name: godegoutils
+ project: godegoutils
+ - name: goxnet
+ project: goxnet
diff --git a/projects/ncprop279/build b/projects/ncprop279/build
new file mode 100644
index 0000000..a035277
--- /dev/null
+++ b/projects/ncprop279/build
@@ -0,0 +1,32 @@
+#!/bin/bash
+[% c("var/set_default_env") -%]
+[% pc('go', 'var/setup', { go_tarfile => c('input_files_by_name/go') }) %]
+export CGO_ENABLED=0
+distdir=/var/tmp/dist/[% project %]
+mkdir -p $distdir
+
+[% FOREACH dep = c("var/go_lib_deps") -%]
+ tar -C /var/tmp/dist -xf [% c('input_files_by_name/' _ dep) %]
+[% END -%]
+
+mkdir -p $GOPATH/src/github.com/namecoin
+tar -C $GOPATH/src/github.com/namecoin -xf [% project %]-[% c('version') %].tar.gz
+mv $GOPATH/src/github.com/namecoin/ncprop279-[% c('version') %] $GOPATH/src/github.com/namecoin/ncprop279
+
+TAGS="-tags no_namecoin_tls"
+
+go install $TAGS -ldflags '-s' github.com/namecoin/ncprop279
+
+[% IF c("var/linux-x86_64") -%]
+ GOPATHBIN="${GOPATH}/bin"
+[% ELSE -%]
+ GOPATHBIN="${GOPATH}/bin/${GOOS}_${GOARCH}"
+[% END -%]
+
+cp -a $GOPATHBIN/ncprop279 $distdir/
+
+cd $distdir
+[% c('tar', {
+ tar_src => [ '.' ],
+ tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+ }) %]
diff --git a/projects/ncprop279/config b/projects/ncprop279/config
new file mode 100644
index 0000000..5d4ee51
--- /dev/null
+++ b/projects/ncprop279/config
@@ -0,0 +1,32 @@
+#version: '0.0.2'
+# Using latest master branch because we need the stream isolation feature.
+# Once it's in a tagged release, we'll go back to using a version number here.
+version: '[% c("abbrev") %]'
+git_url: https://github.com/namecoin/ncprop279.git
+# Using latest master branch because we need the stream isolation feature.
+# Once it's in a tagged release, we'll go back to using a hash that corresponds
+# to a tag here.
+git_hash: '7bdd741d70258407f66aab52b24788f1acccc56b'
+filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+
+var:
+ container:
+ use_container: 1
+ go_lib_deps:
+ - godns
+ - goeasyconfig
+ - gomadns
+ - ncdns
+
+input_files:
+ - project: container-image
+ - name: go
+ project: go
+ - name: godns
+ project: godns
+ - name: goeasyconfig
+ project: goeasyconfig
+ - name: gomadns
+ project: gomadns
+ - name: ncdns
+ project: ncdns
diff --git a/projects/pyaes/build b/projects/pyaes/build
new file mode 100644
index 0000000..0747718
--- /dev/null
+++ b/projects/pyaes/build
@@ -0,0 +1,14 @@
+#!/bin/bash
+[% c("var/set_default_env") -%]
+
+tar xvf [% project %]-[% c('version') %].tar.gz
+
+mkdir -p /var/tmp/dist/
+cd /var/tmp/dist/
+
+cp -a $rootdir/[% project %]*/[% project %] ./[% project %]
+
+[% c('tar', {
+ tar_src => '.',
+ tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+ }) %]
diff --git a/projects/pyaes/config b/projects/pyaes/config
new file mode 100644
index 0000000..6fba344
--- /dev/null
+++ b/projects/pyaes/config
@@ -0,0 +1,11 @@
+# vim: filetype=yaml sw=2
+version: 1.6.1
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
+var:
+ container:
+ use_container: 1
+input_files:
+ - project: container-image
+ - URL: https://files.pythonhosted.org/packages/source/p/pyaes/pyaes-[% c("version") %].tar.gz
+ sha256sum: 02c1b1405c38d3c370b085fb952dd8bea3fadcee6411ad99f312cc129c536d8f
+ # TODO: This version doesn't show up as a Git tag; where did it come from?
diff --git a/projects/six/build b/projects/six/build
new file mode 100644
index 0000000..6f65b22
--- /dev/null
+++ b/projects/six/build
@@ -0,0 +1,14 @@
+#!/bin/bash
+[% c("var/set_default_env") -%]
+
+tar xvf [% project %]-[% c('version') %].tar.gz
+
+mkdir -p /var/tmp/dist/
+cd /var/tmp/dist/
+
+cp -a $rootdir/[% project %]*/[% project %].py ./[% project %].py
+
+[% c('tar', {
+ tar_src => '.',
+ tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+ }) %]
diff --git a/projects/six/config b/projects/six/config
new file mode 100644
index 0000000..e0945d1
--- /dev/null
+++ b/projects/six/config
@@ -0,0 +1,11 @@
+# vim: filetype=yaml sw=2
+version: 1.12.0
+git_url: https://github.com/benjaminp/six.git
+git_hash: d927b9e27617abca8dbf4d66cc9265ebbde261d6
+# TODO: This Git repo doesn't use GPG sigs. We should pester them about that.
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
+var:
+ container:
+ use_container: 1
+input_files:
+ - project: container-image
diff --git a/projects/stemns/build b/projects/stemns/build
new file mode 100644
index 0000000..3784894
--- /dev/null
+++ b/projects/stemns/build
@@ -0,0 +1,25 @@
+#!/bin/sh
+[% c("var/set_default_env") -%]
+distdir=/var/tmp/dist/StemNS
+mkdir /var/tmp/build
+mkdir /var/tmp/dist
+
+# Extract StemNS
+tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
+
+cp -a /var/tmp/build/[% project %]-[% c('version') %] ${distdir}
+
+# Extract Stem
+tar -C /var/tmp/build -xf stem-[% c("var/stem-version") %].tar.gz
+
+cp -a /var/tmp/build/stem-[% c("var/stem-version") %]/stem ${distdir}/stem
+
+# Apply settings
+cp -a settings_port.py settings_services.py ${distdir}/
+
+cd /var/tmp/dist/
+
+[% c('tar', {
+ tar_src => '.',
+ tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+ }) %]
diff --git a/projects/stemns/config b/projects/stemns/config
new file mode 100644
index 0000000..6c83335
--- /dev/null
+++ b/projects/stemns/config
@@ -0,0 +1,17 @@
+# vim: filetype=yaml sw=2
+version: '[% c("abbrev") %]'
+git_url: https://github.com/namecoin/StemNS.git
+git_hash: '32ed59be344d6bb949faa4a2bf70ae058bfe4d21'
+filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
+var:
+ container:
+ use_container: 1
+ stem-version: 1.7.1
+
+input_files:
+ - project: container-image
+ - URL: 'https://files.pythonhosted.org/packages/source/s/stem/stem-[% c("var/stem-version") %].tar.gz'
+ sha256sum: c9eaf3116cb60c15995cbd3dec3a5cbc50e9bb6e062c4d6d42201e566f498ca2
+ # TODO: This sha256sum was grabbed from PyPI and hasn't been verified. We should probably switch to using an OpenPGP sig.
+ - filename: settings_port.py
+ - filename: settings_services.py
diff --git a/projects/stemns/settings_port.py b/projects/stemns/settings_port.py
new file mode 100644
index 0000000..e9f290d
--- /dev/null
+++ b/projects/stemns/settings_port.py
@@ -0,0 +1 @@
+tor_control_port = 9151
diff --git a/projects/stemns/settings_services.py b/projects/stemns/settings_services.py
new file mode 100644
index 0000000..57897f0
--- /dev/null
+++ b/projects/stemns/settings_services.py
@@ -0,0 +1,4 @@
+_service_to_command = {
+ "bit.onion": ['TorBrowser/ncprop279/ncprop279', '--conf=TorBrowser/Data/ncprop279/ncprop279.conf'],
+ "bit": ['TorBrowser/ncprop279/ncprop279', '--conf=TorBrowser/Data/ncprop279/ncprop279.conf'],
+}
diff --git a/projects/tor-browser/Bundle-Data/linux/Data/Electrum-NMC/config b/projects/tor-browser/Bundle-Data/linux/Data/Electrum-NMC/config
new file mode 100644
index 0000000..df1ab17
--- /dev/null
+++ b/projects/tor-browser/Bundle-Data/linux/Data/Electrum-NMC/config
@@ -0,0 +1,6 @@
+{
+ "proxy": "socks5:127.0.0.1:9150::",
+ "rpcpassword": "password",
+ "rpcport": 8336,
+ "rpcuser": "user"
+}
\ No newline at end of file
diff --git a/projects/tor-browser/Bundle-Data/linux/Data/ncprop279/ncprop279.conf b/projects/tor-browser/Bundle-Data/linux/Data/ncprop279/ncprop279.conf
new file mode 100644
index 0000000..afcba1b
--- /dev/null
+++ b/projects/tor-browser/Bundle-Data/linux/Data/ncprop279/ncprop279.conf
@@ -0,0 +1,12 @@
+[ncprop279]
+
+namecoinrpcaddress="127.0.0.1:8336"
+namecoinrpcusername="user"
+namecoinrpcpassword="password"
+namecoinrpctimeout="10000"
+onlyonion="true"
+
+[xlog]
+
+# Uncomment this to enable debug logging
+#severity="DEBUG"
diff --git a/projects/tor-browser/build b/projects/tor-browser/build
index 2979658..2c72e03 100644
--- a/projects/tor-browser/build
+++ b/projects/tor-browser/build
@@ -61,6 +61,11 @@ tar -C "$TBDIR[% IF c("var/osx") %]/Contents/Resources[% END %]" -xf [% c('input
cat > ${TB_STAGE_DIR}/Browser/start-tor-browser << 'RBM_TB_EOF'
[% INCLUDE 'RelativeLink/start-tor-browser' -%]
RBM_TB_EOF
+ [% IF c("var/namecoin") %]
+ pushd ${TB_STAGE_DIR}/Browser/
+ patch -p1 < $rootdir/namecoin.patch
+ popd
+ [% END %]
chmod +x ${TB_STAGE_DIR}/Browser/start-tor-browser
# Make sure we get the desired scrollbar behavior with Gtk3, see bug 27546.
GTK_SETTINGS_DIR=${TB_STAGE_DIR}/Browser/.config/gtk-3.0
@@ -70,6 +75,17 @@ RBM_TB_EOF
tar -C ${TB_STAGE_DIR} -xf [% c('input_files_by_name/firefox') %]/tor-browser.tar.gz
tar -C "$TBDIR[% IF ! c("var/osx") %]/TorBrowser[% END %]" -xf [% c('input_files_by_name/tor') %]/tor.tar.gz
+[% IF c("var/namecoin") %]
+ # Extract Electrum-NMC
+ tar -C "$TBDIR/TorBrowser" -xf [% c('input_files_by_name/electrum-nmc') %]
+
+ # Extract ncprop279
+ mkdir "$TBDIR/TorBrowser/ncprop279"
+ tar -C "$TBDIR/TorBrowser/ncprop279" -xf [% c('input_files_by_name/ncprop279') %]
+
+ # Extract StemNS
+ tar -C "$TBDIR/TorBrowser" -xf [% c('input_files_by_name/stemns') %]
+[% END %]
[% IF c("var/linux");
SET bundledata_osname = 'linux';
@@ -105,7 +121,14 @@ tar -C "$TBDIR[% IF ! c("var/osx") %]/TorBrowser[% END %]" -xf [% c('input_files
mkdir -p "$TBDIR/$DOCSPATH"
cp -a Bundle-Data/Docs/* "$TBDIR/$DOCSPATH"
-tar -C Bundle-Data/[% bundledata_osname %] -c . | tar -C "$TBDIR[% IF ! c("var/osx") %]/TorBrowser[% END %]" -x
+[% IF c("var/namecoin") %]
+ EXCLUDE_ELECTRUM=""
+ EXCLUDE_NCPROP279=""
+[% ELSE %]
+ EXCLUDE_ELECTRUM="--exclude=*Electrum-NMC*"
+ EXCLUDE_NCPROP279="--exclude=*ncprop279*"
+[% END %]
+tar -C Bundle-Data/[% bundledata_osname %] "${EXCLUDE_ELECTRUM}" "${EXCLUDE_NCPROP279}" -c . | tar -C "$TBDIR[% IF ! c("var/osx") %]/TorBrowser[% END %]" -x
cat Bundle-Data/PTConfigs/[% bundledata_osname %]/torrc-defaults-appendix >> "$TBDIR/$TORCONFIGPATH/torrc-defaults"
[% IF ! c("var/snowflake") %]
diff --git a/projects/tor-browser/config b/projects/tor-browser/config
index 819ebad..85d8bff 100644
--- a/projects/tor-browser/config
+++ b/projects/tor-browser/config
@@ -14,6 +14,7 @@ var:
- unzip
- bzip2
- xz-utils
+ - patch
targets:
linux-i686:
@@ -104,3 +105,14 @@ input_files:
name: apktool
sha256sum: a0f116e8916d6f21160e1559847bb8b8c32ee71900f321cafeadbe37b87ebcc1
enable: '[% c("var/android") %]'
+ - name: electrum-nmc
+ project: electrum-nmc
+ enable: '[% c("var/namecoin") %]'
+ - name: ncprop279
+ project: ncprop279
+ enable: '[% c("var/namecoin") %]'
+ - name: stemns
+ project: stemns
+ enable: '[% c("var/namecoin") %]'
+ - filename: namecoin.patch
+ enable: '[% c("var/namecoin") %]'
diff --git a/projects/tor-browser/namecoin.patch b/projects/tor-browser/namecoin.patch
new file mode 100644
index 0000000..f0c2cd0
--- /dev/null
+++ b/projects/tor-browser/namecoin.patch
@@ -0,0 +1,83 @@
+diff -ru RelativeLink/start-tor-browser RelativeLinkNamecoin/start-tor-browser
+--- RelativeLink/start-tor-browser 2019-11-03 06:56:36.062938844 +0000
++++ RelativeLinkNamecoin/start-tor-browser 2019-12-13 12:00:58.000000000 +0000
+@@ -169,6 +169,11 @@
+ detach=0
+ fi
+
++# We can't detach and enable Namecoin at the same time..
++if [ "$TOR_ENABLE_NAMECOIN" = 1 -a "$detach" -eq 1 ]; then
++ detach=0
++fi
++
+ if [ "$show_output" -eq 0 ]; then
+ # If the user hasn't requested 'debug mode' or --help, close stdout and stderr,
+ # to keep Firefox and the stuff loaded by/for it (including the
+@@ -352,6 +357,55 @@
+ #
+ # The --class parameter was added to fix bug 11102.
+
++# The Namecoin support in this script is a placeholder proof-of-concept only.
++# In the real world this would be moved to Tor Launcher.
++terminate_namecoin () {
++ echo "Terminating Namecoin..."
++ kill ${ELECTRUM_NMC_PID}
++ kill -s SIGKILL ${STEM_NS_PID}
++ echo "Terminated Namecoin."
++}
++if [ "${TOR_ENABLE_NAMECOIN}" = 1 ]; then
++ python3 -c 'import sys; exit(0) if sys.version_info[:2] >= (3, 6) else exit(1)'
++ if [ "$?" -ne 0 ]; then
++ complain "Namecoin requires at least Python 3.6."
++ exit 1
++ fi
++
++ if [ "$show_usage" -eq 1 ]; then
++ # No help exists for Namecoin
++ TOR_ENABLE_NAMECOIN=0
++ elif [ "$detach" -eq 1 ] ; then
++ # No support yet for detached Namecoin
++ TOR_ENABLE_NAMECOIN=0
++ elif [ "$log_output" -eq 1 -a "$show_output" -eq 1 ]; then
++ # No support yet for logging Namecoin
++ TOR_ENABLE_NAMECOIN=0
++ elif [ "$show_output" -eq 1 ]; then
++ # Launch Namecoin in verbose mode
++ echo "Launching Namecoin..."
++ trap terminate_namecoin SIGINT SIGTERM
++ grep --quiet "__LeaveStreamsUnattached 1" TorBrowser/Data/Tor/torrc-defaults || echo "__LeaveStreamsUnattached 1" >> TorBrowser/Data/Tor/torrc-defaults
++ TorBrowser/Electrum-NMC/run_electrum_nmc daemon -v --dir "TorBrowser/Data/Electrum-NMC/" &
++ ELECTRUM_NMC_PID=$!
++ python3 TorBrowser/StemNS/poc.py &
++ STEM_NS_PID=$!
++ echo "Launched Namecoin."
++ else
++ # Launch Namecoin
++ trap terminate_namecoin SIGINT SIGTERM
++ grep --quiet "__LeaveStreamsUnattached 1" TorBrowser/Data/Tor/torrc-defaults || echo "__LeaveStreamsUnattached 1" >> TorBrowser/Data/Tor/torrc-defaults
++ TorBrowser/Electrum-NMC/run_electrum_nmc daemon --dir "TorBrowser/Data/Electrum-NMC/" &
++ ELECTRUM_NMC_PID=$!
++ python3 TorBrowser/StemNS/poc.py &
++ STEM_NS_PID=$!
++ fi
++fi
++
++if [ "${TOR_ENABLE_NAMECOIN}" != 1 ]; then
++ perl -i -p -e 's/__LeaveStreamsUnattached 1\n//' TorBrowser/Data/Tor/torrc-defaults
++fi
++
+ if [ "$show_usage" -eq 1 ]; then
+ # Display Firefox help, then our help
+ TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD} ./firefox --class "Tor Browser" \
+@@ -373,4 +427,10 @@
+ -profile TorBrowser/Data/Browser/profile.default "${@}" > "$logfile" 2>&1 </dev/null
+ fi
+
+-exit $?
++FIREFOX_EXIT_CODE=$?
++
++if [ "${TOR_ENABLE_NAMECOIN}" = 1 ]; then
++ terminate_namecoin
++fi
++
++exit ${FIREFOX_EXIT_CODE}
diff --git a/projects/typing_extensions/build b/projects/typing_extensions/build
new file mode 100644
index 0000000..2628ad1
--- /dev/null
+++ b/projects/typing_extensions/build
@@ -0,0 +1,14 @@
+#!/bin/bash
+[% c("var/set_default_env") -%]
+
+tar xvf [% project %]-[% c('version') %].tar.gz
+
+mkdir -p /var/tmp/dist/
+cd /var/tmp/dist/
+
+cp -a $rootdir/[% project %]*/[% project %]/src_py3/[% project %].py ./[% project %].py
+
+[% c('tar', {
+ tar_src => '.',
+ tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+ }) %]
diff --git a/projects/typing_extensions/config b/projects/typing_extensions/config
new file mode 100644
index 0000000..4926d82
--- /dev/null
+++ b/projects/typing_extensions/config
@@ -0,0 +1,11 @@
+# vim: filetype=yaml sw=2
+version: 3.7.4
+git_url: https://github.com/python/typing.git
+git_hash: baf63c5924a2b9695175df5d47ced40596024b78
+# TODO: This Git repo uses GPG sigs; we should switch from commit hash to GPG verification.
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
+var:
+ container:
+ use_container: 1
+input_files:
+ - project: container-image
diff --git a/projects/yarl/build b/projects/yarl/build
new file mode 100644
index 0000000..e0f9400
--- /dev/null
+++ b/projects/yarl/build
@@ -0,0 +1,14 @@
+#!/bin/bash
+[% c("var/set_default_env") -%]
+
+tar xvf [% project %]-[% c('version') %].tar.gz
+
+mkdir -p /var/tmp/dist/[% project %]
+cd /var/tmp/dist/
+
+cp -a $rootdir/[% project %]*/[% project %]/*.py ./[% project %]/
+
+[% c('tar', {
+ tar_src => '.',
+ tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
+ }) %]
diff --git a/projects/yarl/config b/projects/yarl/config
new file mode 100644
index 0000000..506bec1
--- /dev/null
+++ b/projects/yarl/config
@@ -0,0 +1,11 @@
+# vim: filetype=yaml sw=2
+version: 1.3.0
+git_url: https://github.com/aio-libs/yarl.git
+git_hash: 619cc2203b8888fb9ad552c4a3da6f8b31d1fbac
+# TODO: This Git repo doesn't use GPG sigs. We should pester them about that.
+filename: "[% project %]-[% c('version') %]-[% c('var/build_id') %].tar.gz"
+var:
+ container:
+ use_container: 1
+input_files:
+ - project: container-image
diff --git a/rbm.conf b/rbm.conf
index 0fe7acb..31f60bb 100644
--- a/rbm.conf
+++ b/rbm.conf
@@ -233,6 +233,7 @@ targets:
android_min_api_x86: 16
android_min_api_x86_64: 21
snowflake: 0
+ namecoin: 0
CC: '$ANDROID_NDK_HOME/[% c("var/toolchain_arch") %]/bin/clang'
CXX: '$ANDROID_NDK_HOME/[% c("var/toolchain_arch") %]/bin/clang++'
container:
@@ -275,6 +276,8 @@ targets:
# We only build snowflake on the alpha and nightly
# channels for now.
snowflake: '[% c("var/alpha") || c("var/nightly") %]'
+ # Only build Namecoin for linux on nightly
+ namecoin: '[% c("var/nightly") %]'
container:
suite: wheezy
arch: amd64
@@ -327,6 +330,7 @@ targets:
# We only build snowflake on the alpha and nightly
# channels for now.
snowflake: '[% c("var/alpha") || c("var/nightly") %]'
+ namecoin: 0
deps:
- build-essential
- python
@@ -355,6 +359,7 @@ targets:
# We only build snowflake on the alpha and nightly
# channels for now.
snowflake: '[% c("var/alpha") || c("var/nightly") %]'
+ namecoin: 0
deps:
- build-essential
- python
1
0

[tor-browser-bundle-testsuite/master] Bug 25101: Remove tools/prune-old-builds
by gk@torproject.org 18 Dec '19
by gk@torproject.org 18 Dec '19
18 Dec '19
commit ea0942f9da2bdbaf3f140f3baaed1bb56ee9af69
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Mon Dec 16 21:35:49 2019 +0100
Bug 25101: Remove tools/prune-old-builds
The prune-old-builds script has been moved to tor-browser-build.git, in
tools/ansible/roles/tbb-nightly-build/files/prune-old-builds.
---
.gitmodules | 3 ---
tools/prune-old-builds | 1 -
2 files changed, 4 deletions(-)
diff --git a/.gitmodules b/.gitmodules
index a6d0dd9..067f871 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,6 +1,3 @@
[submodule "packages/rbm"]
path = packages/rbm
url = https://github.com/boklm/rbm
-[submodule "tools/prune-old-builds"]
- path = tools/prune-old-builds
- url = https://github.com/boklm/prune-old-builds
diff --git a/tools/prune-old-builds b/tools/prune-old-builds
deleted file mode 160000
index 8cb7522..0000000
--- a/tools/prune-old-builds
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 8cb752270ef0c1d82a07196c5fc5024f042d7885
1
0

[tor-browser-bundle-testsuite/master] Bug 25101: Generate incremental mars for nightly builds
by gk@torproject.org 18 Dec '19
by gk@torproject.org 18 Dec '19
18 Dec '19
commit 4261c714139e0d9896d17c92af54747f34bd9f9b
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Tue Dec 10 21:13:10 2019 +0100
Bug 25101: Generate incremental mars for nightly builds
---
TBBTestSuite/TestSuite/TorBrowserBuild.pm | 58 +++++++++++++++++++++++++++++++
tmpl/details_make_incrementals.html | 1 +
2 files changed, 59 insertions(+)
diff --git a/TBBTestSuite/TestSuite/TorBrowserBuild.pm b/TBBTestSuite/TestSuite/TorBrowserBuild.pm
index c52d5c4..d391bac 100644
--- a/TBBTestSuite/TestSuite/TorBrowserBuild.pm
+++ b/TBBTestSuite/TestSuite/TorBrowserBuild.pm
@@ -3,9 +3,11 @@ package TBBTestSuite::TestSuite::TorBrowserBuild;
use strict;
use parent 'TBBTestSuite::TestSuite::RBMBuild';
+use TBBTestSuite::Common qw(run_to_file);
use TBBTestSuite::GitRepo;
use File::Copy;
use IO::CaptureOutput qw(capture_exec);
+use Path::Tiny;
sub description {
'Tor Browser Build';
@@ -15,6 +17,13 @@ sub type {
'tor-browser_build';
};
+sub test_types {
+ my $self = shift;
+ my $res = $self->SUPER::test_types();
+ $res->{make_incrementals} = \&make_incrementals;
+ return $res;
+}
+
sub set_tests {
my ($testsuite) = @_;
$testsuite->{tests} = [
@@ -32,6 +41,12 @@ sub set_tests {
publish_dir => 'nightly-linux-x86_64',
},
{
+ name => 'incrementals-nightly-linux-x86_64',
+ descr => 'create incrementals for tor-browser nightly linux-x86_64',
+ type => 'make_incrementals',
+ publish_dir => 'nightly-linux-x86_64',
+ },
+ {
name => 'nightly-linux-i686',
descr => 'build tor-browser nightly linux-i686',
type => 'rbm_build',
@@ -44,6 +59,12 @@ sub set_tests {
publish_dir => 'nightly-linux-i686',
},
{
+ name => 'incrementals-nightly-linux-i686',
+ descr => 'create incrementals for tor-browser nightly linux-i686',
+ type => 'make_incrementals',
+ publish_dir => 'nightly-linux-i686',
+ },
+ {
name => 'nightly-windows-i686',
descr => 'build tor-browser nightly windows-i686',
type => 'rbm_build',
@@ -56,6 +77,12 @@ sub set_tests {
publish_dir => 'nightly-windows-i686',
},
{
+ name => 'incrementals-nightly-windows-i686',
+ descr => 'create incrementals for tor-browser nightly windows-i686',
+ type => 'make_incrementals',
+ publish_dir => 'nightly-windows-i686',
+ },
+ {
name => 'nightly-windows-x86_64',
descr => 'build tor-browser nightly windows-x86_64',
type => 'rbm_build',
@@ -68,6 +95,12 @@ sub set_tests {
publish_dir => 'nightly-windows-x86_64',
},
{
+ name => 'incrementals-nightly-windows-x86_64',
+ descr => 'create incrementals for tor-browser nightly windows-x86_64',
+ type => 'make_incrementals',
+ publish_dir => 'nightly-windows-x86_64',
+ },
+ {
name => 'nightly-osx-x86_64',
descr => 'build tor-browser nightly osx-x86_64',
type => 'rbm_build',
@@ -80,6 +113,12 @@ sub set_tests {
publish_dir => 'nightly-osx-x86_64',
},
{
+ name => 'incrementals-nightly-osx-x86_64',
+ descr => 'create incrementals for tor-browser nightly osx-x86_64',
+ type => 'make_incrementals',
+ publish_dir => 'nightly-osx-x86_64',
+ },
+ {
name => 'nightly-android-armv7',
descr => 'build tor-browser nightly android-armv7',
type => 'rbm_build',
@@ -130,6 +169,25 @@ sub set_tests {
];
}
+sub make_incrementals {
+ my ($testsuite, $test) = @_;
+ $test->{results}{success} = 0;
+ mkdir 'nightly' unless -d 'nightly';
+ # Clean the nightly directory
+ foreach my $subdir (path('nightly')->children) {
+ unlink $subdir if -l $subdir;
+ }
+ foreach my $builddir (path($testsuite->{publish_dir} . '/..')->children) {
+ if (-f "$builddir/$test->{publish_dir}/sha256sums-unsigned-build.txt") {
+ symlink("$builddir/$test->{publish_dir}", 'nightly/' . $builddir->basename);
+ }
+ }
+ my @cmd = ('make', 'incrementals-nightly');
+ run_to_file("$testsuite->{'results-dir'}/$test->{name}.build.txt", @cmd)
+ or return;
+ $test->{results}{success} = 1;
+}
+
sub pre_tests {
my ($tbbinfos) = @_;
my $gr = TBBTestSuite::GitRepo->new({
diff --git a/tmpl/details_make_incrementals.html b/tmpl/details_make_incrementals.html
new file mode 120000
index 0000000..d9bb49c
--- /dev/null
+++ b/tmpl/details_make_incrementals.html
@@ -0,0 +1 @@
+details_rbm_build.html
\ No newline at end of file
1
0

[tor-browser-bundle-testsuite/master] Bug 25101: Set TORBROWSER_NIGHTLY_VERSION env variable
by gk@torproject.org 18 Dec '19
by gk@torproject.org 18 Dec '19
18 Dec '19
commit 679ee355425b0cb4bf77626a8b16755c1c43db60
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Tue Dec 10 20:13:18 2019 +0100
Bug 25101: Set TORBROWSER_NIGHTLY_VERSION env variable
---
TBBTestSuite/TestSuite/TorBrowserBuild.pm | 3 +++
1 file changed, 3 insertions(+)
diff --git a/TBBTestSuite/TestSuite/TorBrowserBuild.pm b/TBBTestSuite/TestSuite/TorBrowserBuild.pm
index 1389092..c52d5c4 100644
--- a/TBBTestSuite/TestSuite/TorBrowserBuild.pm
+++ b/TBBTestSuite/TestSuite/TorBrowserBuild.pm
@@ -149,6 +149,9 @@ sub pre_tests {
return;
}
}
+ if ($tbbinfos->{tbb_version}) {
+ $ENV{TORBROWSER_NIGHTLY_VERSION} = $tbbinfos->{tbb_version};
+ }
}
1;
1
0

[tor-browser-build/master] Bug 25101: Add license and usage information to the prune-old-builds script
by gk@torproject.org 18 Dec '19
by gk@torproject.org 18 Dec '19
18 Dec '19
commit 434a7d9e9ad8785c92a6dae014de990a9595c77f
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Mon Dec 16 21:00:31 2019 +0100
Bug 25101: Add license and usage information to the prune-old-builds script
---
.../roles/tbb-nightly-build/files/prune-old-builds | 57 ++++++++++++++++++++++
1 file changed, 57 insertions(+)
diff --git a/tools/ansible/roles/tbb-nightly-build/files/prune-old-builds b/tools/ansible/roles/tbb-nightly-build/files/prune-old-builds
index 5d54229..1b4e30b 100755
--- a/tools/ansible/roles/tbb-nightly-build/files/prune-old-builds
+++ b/tools/ansible/roles/tbb-nightly-build/files/prune-old-builds
@@ -1,4 +1,61 @@
#!/usr/bin/perl -w
+
+# Copyright (c) 2019, The Tor Project, Inc.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#
+# * Neither the names of the copyright owners nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+# 'prune-old-builds' is a script to prune old builds.
+#
+#
+# Usage:
+# $ ./prune-old-builds [options] <directory>
+#
+#
+# Available options:
+#
+# --dry-run
+# Don't delete anything, but say what would be deleted.
+#
+# --prefix <prefix>
+# Prefix of the directories to be removed. Default is 'tbb-nightly-'.
+#
+# --days <n>
+# Number of days that we should keep. Default is 6.
+#
+# --weeks <n>
+# Number of monday builds that we should keep. Default is 3.
+#
+# --months <n>
+# Number of 1st day of the month builds that we should keep.
+# Default is 3.
+
use strict;
use Getopt::Long;
use DateTime;
1
0

[tor-browser-build/master] Bug 25101: Generate incremental mars for nightly builds
by gk@torproject.org 18 Dec '19
by gk@torproject.org 18 Dec '19
18 Dec '19
commit 608fbb6f06237c0e0786b650433ca0c4cc203f72
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Wed Dec 11 00:15:33 2019 +0100
Bug 25101: Generate incremental mars for nightly builds
Update testsuite_git_commit so that incremental mars are generated
as part of our nightly builds.
---
tools/ansible/roles/tbb-nightly-build/defaults/main.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/ansible/roles/tbb-nightly-build/defaults/main.yml b/tools/ansible/roles/tbb-nightly-build/defaults/main.yml
index f7f63f5..0a9e94a 100644
--- a/tools/ansible/roles/tbb-nightly-build/defaults/main.yml
+++ b/tools/ansible/roles/tbb-nightly-build/defaults/main.yml
@@ -5,7 +5,7 @@ nightly_build_cron_minute: 20
nightly_build_keep_builds: 3
testsuite_dir: "/home/{{ nightly_build_user }}/tbb-testsuite"
testsuite_git_url: https://git.torproject.org/tor-browser-bundle-testsuite.git
-testsuite_git_commit: d5e23151bf4ff48146c0c33355fe70def5e4d3f2
+testsuite_git_commit: ea0942f9da2bdbaf3f140f3baaed1bb56ee9af69
nightly_build_wwwdir: "/home/{{ nightly_build_user }}/www"
nightly_build_nginx_enable: true
nightly_build_nginx_listen: 127.0.0.1:80
1
0

18 Dec '19
commit 8489c017a01460d3e88e06dfc7a1edd3f02b71f8
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Mon Dec 16 21:09:20 2019 +0100
Bug 25101: Keep 3 nightly builds
In rbm.conf we currently have var/max_torbrowser_incremental_from set to
2. In order to be able to generate incrementals from the previous two
versions, we need to keep 3 builds.
---
tools/ansible/roles/tbb-nightly-build/defaults/main.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/ansible/roles/tbb-nightly-build/defaults/main.yml b/tools/ansible/roles/tbb-nightly-build/defaults/main.yml
index 34d3929..f7f63f5 100644
--- a/tools/ansible/roles/tbb-nightly-build/defaults/main.yml
+++ b/tools/ansible/roles/tbb-nightly-build/defaults/main.yml
@@ -2,7 +2,7 @@
nightly_build_user: tbb-nightly
nightly_build_cron_hour: 2
nightly_build_cron_minute: 20
-nightly_build_keep_builds: 2
+nightly_build_keep_builds: 3
testsuite_dir: "/home/{{ nightly_build_user }}/tbb-testsuite"
testsuite_git_url: https://git.torproject.org/tor-browser-bundle-testsuite.git
testsuite_git_commit: d5e23151bf4ff48146c0c33355fe70def5e4d3f2
1
0

[tor-browser-build/master] Bug 25101: Change nightly builds directory to be the version
by gk@torproject.org 18 Dec '19
by gk@torproject.org 18 Dec '19
18 Dec '19
commit 2d5508bfea59900b8d5952d895ac0e9610c70503
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Wed Dec 11 00:10:56 2019 +0100
Bug 25101: Change nightly builds directory to be the version
To make generation of incremental mars easier, we use the version as the
directory name (instead of just the date).
We also define the tbb_version option, which is used to set the
TORBROWSER_NIGHTLY_VERSION environment variable.
---
.../roles/tbb-nightly-build/files/prune-old-builds | 17 +++++++++++------
.../roles/tbb-nightly-build/templates/start-tbb-nightly | 2 +-
.../roles/tbb-nightly-build/templates/testsuite-config | 6 ++++--
3 files changed, 16 insertions(+), 9 deletions(-)
diff --git a/tools/ansible/roles/tbb-nightly-build/files/prune-old-builds b/tools/ansible/roles/tbb-nightly-build/files/prune-old-builds
index 1b4e30b..852a9da 100755
--- a/tools/ansible/roles/tbb-nightly-build/files/prune-old-builds
+++ b/tools/ansible/roles/tbb-nightly-build/files/prune-old-builds
@@ -44,7 +44,11 @@
# Don't delete anything, but say what would be deleted.
#
# --prefix <prefix>
-# Prefix of the directories to be removed. Default is 'tbb-nightly-'.
+# Prefix of the directories to be removed. Default is 'tbb-nightly.'.
+#
+# --separator <c>
+# Separator character to separate the year, month, day in the directory
+# names. Default is '.'.
#
# --days <n>
# Number of days that we should keep. Default is 6.
@@ -66,7 +70,8 @@ my %options = (
days => 6,
weeks => 3,
months => 3,
- prefix => 'tbb-nightly-',
+ prefix => 'tbb-nightly.',
+ separator => '.',
);
sub keep_builds {
@@ -79,7 +84,7 @@ sub keep_builds {
my $n = $options{days};
my $dt = DateTime->now;
while ($n) {
- $res{ $options{prefix} . $dt->ymd } = 1;
+ $res{ $options{prefix} . $dt->ymd($options{separator}) } = 1;
$dt = $dt - $day;
$n--;
}
@@ -89,7 +94,7 @@ sub keep_builds {
$dt = $dt - $day;
}
while ($w) {
- $res{ $options{prefix} . $dt->ymd } = 1;
+ $res{ $options{prefix} . $dt->ymd($options{separator}) } = 1;
$dt = $dt - $week;
$w--;
}
@@ -100,7 +105,7 @@ sub keep_builds {
$dt = $dt - $day;
}
while ($m) {
- $res{ $options{prefix} . $dt->ymd } = 1;
+ $res{ $options{prefix} . $dt->ymd($options{separator}) } = 1;
$dt = $dt - $month;
$m--;
}
@@ -113,7 +118,7 @@ sub clean_directory {
my $k = keep_builds;
chdir $directory || die "Error entering $directory";
foreach my $file (glob "$options{prefix}*") {
- next unless $file =~ m/^$options{prefix}\d{4}-\d{2}-\d{2}$/;
+ next unless $file =~ m/^$options{prefix}\d{4}$options{separator}\d{2}$options{separator}\d{2}$/;
next if $k->{$file};
if ($options{'dry-run'}) {
print "Would remove $file\n";
diff --git a/tools/ansible/roles/tbb-nightly-build/templates/start-tbb-nightly b/tools/ansible/roles/tbb-nightly-build/templates/start-tbb-nightly
index c93bc94..fafc1d9 100644
--- a/tools/ansible/roles/tbb-nightly-build/templates/start-tbb-nightly
+++ b/tools/ansible/roles/tbb-nightly-build/templates/start-tbb-nightly
@@ -2,4 +2,4 @@
cd {{ testsuite_dir }}
export RBM_NO_DEBUG=1
./tbb-testsuite --config=tbb-nightly "$@"
-/home/{{ nightly_build_user }}/prune-old-builds --prefix '' --days {{ nightly_build_keep_builds }} ./tor-browser-builds
+/home/{{ nightly_build_user }}/prune-old-builds --days {{ nightly_build_keep_builds }} ./tor-browser-builds
diff --git a/tools/ansible/roles/tbb-nightly-build/templates/testsuite-config b/tools/ansible/roles/tbb-nightly-build/templates/testsuite-config
index c07c52c..90b08ac 100644
--- a/tools/ansible/roles/tbb-nightly-build/templates/testsuite-config
+++ b/tools/ansible/roles/tbb-nightly-build/templates/testsuite-config
@@ -5,6 +5,7 @@ use DateTime;
use TBBTestSuite::TestSuite::TorBrowserBuild;
my $date = DateTime->now->ymd;
+my $tbb_version = 'tbb-nightly.' . DateTime->now->ymd('.');
my $name = "tor-browser-$date";
if (-d "$options->{'reports-dir'}/r/$name") {
@@ -13,8 +14,9 @@ if (-d "$options->{'reports-dir'}/r/$name") {
}
my $testsuite = TBBTestSuite::TestSuite::TorBrowserBuild->new({
- publish_dir => "$FindBin::Bin/tor-browser-builds/$date",
- publish_url => "{{ nightly_build_url }}/tor-browser-builds/$date",
+ tbb_version => $tbb_version,
+ publish_dir => "$FindBin::Bin/tor-browser-builds/$tbb_version",
+ publish_url => "{{ nightly_build_url }}/tor-browser-builds/$tbb_version",
rbm_local_conf => "$FindBin::Bin/rbm-config/tbb-nightly.rbm.local.conf",
make_clean => 1,
});
1
0