diff --git a/_build/auto-build-committers.gnupg/pubring.gpg b/_build/auto-build-committers.gnupg/pubring.gpg new file mode 100644 index 00000000..1a6a7433 Binary files /dev/null and b/_build/auto-build-committers.gnupg/pubring.gpg differ diff --git a/_build/update_site.sh b/_build/update_site.sh index 8a31fb1e..f0b39bc7 100755 --- a/_build/update_site.sh +++ b/_build/update_site.sh @@ -7,6 +7,7 @@ PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/bin source /etc/profile.d/rvm.sh +AUTHORIZED_SIGNERS_DIR='/bitcoin.org/auto-build-committers.gnupg' REPO='https://github.com/bitcoin-dot-org/bitcoin.org.git' SITEDIR='/bitcoin.org/site' DESTDIR='build@bitcoinorgsite:/var/www/site' @@ -39,6 +40,32 @@ fi git reset --hard origin/master git clean -x -f -d +## Whether to auto-build or force-build +case "${1:-nil}" in + auto) + ## From git-log(1): + ## %G?: show "G" for a Good signature, "B" for a Bad signature, "U" + ## for a good, untrusted signature and "N" for no signature + if ! GNUPGHOME=$AUTHORIZED_SIGNERS_DIR git log --format='%G?' -1 | egrep -q '^(G|U)$' + then + echo "Commit tree tip not signed by an authorized signer. Terminating build." + exit 1 + fi + ;; + + force) + true + ;; + + *) + echo "$0 " + echo + echo "auto: only builds if the latest commit is GPG signed by an authorized key" + echo "force: builds latest commit no matter what" + exit 1 + ;; +esac + # Copy files to temporary directory rsync -rt --delete "$SITEDIR/" "$WORKDIR/" @@ -70,13 +97,12 @@ do fi # Cancel script if a concurrent script has touched _buildlock - time=0 if [ -e "$SITEDIR/_buildlock" ]; then time=`stat -c %Y "$SITEDIR/_buildlock" | cut -d ' ' -f1` - fi - if [ $time != $lasttime ]; then - echo "Build cancelled" - exit + if [ $time != $lasttime ]; then + echo "Build cancelled" + exit + fi fi sleep 1 diff --git a/_less/screen.less b/_less/screen.less index f29cc4e1..6531ccfe 100644 --- a/_less/screen.less +++ b/_less/screen.less @@ -1846,10 +1846,22 @@ h2 .rssicon{ .downloadbox p{ margin:0; } -.downloadbox p a{ +.downloadbox p.downloadmore a{ font-size:90%; } -.downloadbox a{ +.downloadbox p.downloadkeys{ + font-size:80%; + margin-top:15px; +} +.downloadbox p.downloadkeys span{ + display:block; +} +.downloadbox p.downloadkeys a{ + display:inline-block; + padding: 5px 10px 0 20px; + background:url(/img/icons/mini_ico_key.svg) left 8px no-repeat; +} +.downloadbox div a{ display:inline-block; } .downloadbox div{ diff --git a/_templates/about-us.html b/_templates/about-us.html index 8d5edc70..d06ec6a5 100644 --- a/_templates/about-us.html +++ b/_templates/about-us.html @@ -11,6 +11,13 @@ id: about-us

{% translate own %}

{% translate owntxt %}

+{% case page.lang %} +{% when 'id' or 'da' or 'de' or 'es' or 'fr' or 'it' or 'hu' or 'nl' or 'pl' or 'pt_BR' or 'ro' or 'sl' or 'sv' or 'tr' or 'el' or 'bg' or 'ru' or 'uk' or 'ar' or 'fa' or 'hi' or 'ko' or 'ja' or 'zh_CN' or 'zh_TW' %} +{% else %} +

{% translate owntxt2 %}

+

{% translate owntxt3 %}

+

{% translate owntxt4 %}

+{% endcase %}

{% translate control %}

{% translate controltxt %}

@@ -32,14 +39,15 @@ id: about-us

{% translate maintenance %}

-

Saïvann CarignanWebsite maintenance
Translation coordination

-

David A. HardingWebsite maintenance
Volunteer coordination
Documentation writing

-

Craig WatkinsWallet reviews

+

Saïvann CarignanWebsite maintainer

+

David A. HardingDocumentation maintainer

+

Craig WatkinsWallet maintainer

{% translate translation %}

+

Will BinnsTranslation coordination

Ar ViccoRussian

Simon Alexander HinterreiterGerman

Jacob BurenstamSwedish

@@ -54,10 +62,16 @@ id: about-us

{% translate inactive_contributors %}

-

Garland William Binns IIITranslation maintenance

Greg SandersDocumentation Writing

+

{% translate owners %} — {% translate partial_list %}

+ +
+

Martti Malmi(AKA Sirius)
Inactive

+

Michael Marquardt(AKA Theymos)

+
+

{% translate github %}

diff --git a/_templates/download.html b/_templates/download.html index b32ba6a8..7a9bfa5b 100755 --- a/_templates/download.html +++ b/_templates/download.html @@ -76,13 +76,20 @@ lin64: "linux64.tar.gz"
-

+

{% translate downloadsig %}
{% translate downloadtorrent %} {% if site.DOWNLOAD_MAGNETLINK %} {% endif %}
{% translate versionhistory %}

+

+ {% translate releasekeys %} + v0.8.6 - 0.9.2.1 + v0.9.3 - 0.10.2 + v0.11.0+ +

+

note{% translate patient %}

{% translate notesync %} {% translate full_node_guide %}

{% translate notelicense %}

diff --git a/_translations/en.yml b/_translations/en.yml index eca70b58..9f28728f 100644 --- a/_translations/en.yml +++ b/_translations/en.yml @@ -4,7 +4,10 @@ en: pagetitle: "About bitcoin.org" pagedesc: "Bitcoin.org is dedicated to help Bitcoin to develop in a sustainable way." own: "Who owns bitcoin.org?" - owntxt: "Bitcoin.org is the original domain name used with the first Bitcoin website. It was registered and is still managed by Bitcoin core developers and by additional community members, with the input of Bitcoin communities. Bitcoin.org is not an official website. Just like nobody owns the email technology, nobody owns the Bitcoin network. As such, nobody can speak with authority in the name of Bitcoin." + owntxt: "Bitcoin.org was originally registered and owned by Bitcoin's first two developers, Satoshi Nakamoto and Martti Malmi. When Nakamoto left the project, he gave ownership of the domain to additional people, separate from the Bitcoin developers, to spread responsibility and prevent any one person or group from easily gaining control over the Bitcoin project." + owntxt2: "From 2011 to 2013, the site was primarily used for releasing new versions of the software now called Bitcoin Core. In 2013, the site was redesigned into its current form, adding numerous pages, listing additional Bitcoin software, and creating the translation system. Developer documentation was added in 2014." + owntxt3: "Today the site is an independent open source project with contributors from around the world. Final publication authority is held by the co-owners, but all regular activity is organized through the public pull request process and managed by the site co-maintainers." + owntxt4: "Bitcoin.org is not Bitcoin's official website. Just like nobody owns the email technology, nobody owns the Bitcoin network. As such, nobody can speak with authority in the name of Bitcoin." control: "Then... who controls Bitcoin?" controltxt: "Bitcoin is controlled by all Bitcoin users around the world. Developers are improving the software but they can't force a change in the rules of the Bitcoin protocol because all users are free to choose what software they use. In order to stay compatible with each other, all users need to use software complying with the same rules. Bitcoin can only work decently with a complete consensus between all users. Therefore, all users and developers have strong incentives to adopt and protect this consensus." mission: "Mission" @@ -21,6 +24,8 @@ en: documentation: "Documentation" translation: "Translation" inactive_contributors: "Inactive Contributors" + owners: "Domain Owners" + partial_list: "Partial List" github: "Contributors on GitHub" bitcoin-for-businesses: title: "Bitcoin for Businesses - Bitcoin" @@ -251,6 +256,7 @@ en: notesync: "Bitcoin Core initial synchronization will take time and download a lot of data. You should make sure that you have enough bandwidth and storage for the full block chain size (over 20GB). If you have a good Internet connection, you can help strengthen the network by keeping your PC running with Bitcoin Core and port 8333 open." full_node_guide: "Read the full node guide for details." patient: "Check your bandwidth and space" + releasekeys: "Bitcoin Core Release Signing Keys" events: title: "Conferences and events - Bitcoin" pagetitle: "Conferences and events" diff --git a/en/full-node.md b/en/full-node.md index 0bb84bf5..f7d49e0b 100644 --- a/en/full-node.md +++ b/en/full-node.md @@ -24,12 +24,17 @@ Configuration](#network-configuration) section for details. If you know how to use PGP, you should also click the *Verify Release Signatures* link on the download page to download a signed list of SHA256 -file hashes. The file is currently signed by [Wladimir J. van der Laan's -key](/laanwj.asc). His primary key's fingerprint is: +file hashes. The 0.11 and later releases are signed by [Wladimir J. van +der Laan's releases key](/laanwj-releases.asc) with the fingerprint: + + 01EA 5486 DE18 A882 D4C2 6845 90C8 019E 36C2 E964 + +Earlier releases were signed by [Wladimir J. van der Laan's regular +key](/laanwj.asc). That key's fingerprint is: 71A3 B167 3540 5025 D447 E8F2 7481 0B01 2346 C9A6 -Many previous releases were signed by [Gavin Andresen's +Even earlier releases were signed by [Gavin Andresen's key](/gavinandresen.asc). His primary key's fingerprint is: 2664 6D99 CBAE C9B8 1982 EF60 29D9 EE6B 1FC7 30C1 diff --git a/img/icons/mini_ico_key.png b/img/icons/mini_ico_key.png new file mode 100644 index 00000000..b778a0b6 Binary files /dev/null and b/img/icons/mini_ico_key.png differ diff --git a/img/icons/mini_ico_key.svg b/img/icons/mini_ico_key.svg new file mode 100644 index 00000000..dea8986f --- /dev/null +++ b/img/icons/mini_ico_key.svg @@ -0,0 +1,17 @@ + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/laanwj-releases.asc b/laanwj-releases.asc new file mode 100644 index 00000000..c5b50083 --- /dev/null +++ b/laanwj-releases.asc @@ -0,0 +1,36 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1 + +mQINBFWKlBcBEACgZJd/6LrSgNSVxiyq5N9h0E7zgSHG/ahuWAnWeFtxaxHeukH+ +Q2Zq6F8FLbq40PphyroRylMBpzPBcyxjee7mDj1DpJ9ayv6GGPTyQzOImhChEV8p +bA42dvXnB5ju0rPh2GxctbiZZD1kiPH4jlmDIgomvupAj9OFntA5jfkuSFBekZrw +QyZowz/paMBIe24YH2LyaZjC2DqLy8Znh78OfAZxZsWSdZxK5LsbkCE9l8Li3gQa +rxm4aEMBHhvns+s8Ufa47sdJAYAfVnAWb5Dfe4oVFh70PvB8GSGFS9qeib0eEQBD +71c9MN+REDTSOYO2VnUSFbu7IrKsPsClqwfT9KzI/uz5fpHSKdCp5AO7oDZiU36s +LsSOBbukTmFQfVrAniFEZxHLCBufXCsAwp07xtUH9ytbW0Y/eHYlZojoWJJPT//1 +cQ/A2Ix/nxbSkSPq8wpCUhBxvTQoU9BXeQIbSy0yUmj5nS+3DR7IK2Q7ACyVClr7 +LVQOGxgZhHr9Kq87RDqc1wlvbCxb+KTJQhJySpOVoiaME6jLBzgE7G+5N6IXTK5u +OriOsQwcLdeBu7TPgft79uBYnmYeaNVdovlBB//7H7UvY0kAxAg4NPgK6eYRdzn+ +8ZtbntNXi/23RJvzeZJVBqQ7bYt4fjmHmRYrbM4jWKJEoJOE6wzpmELUowARAQAB +tFVXbGFkaW1pciBKLiB2YW4gZGVyIExhYW4gKEJpdGNvaW4gQ29yZSBiaW5hcnkg +cmVsZWFzZSBzaWduaW5nIGtleSkgPGxhYW53akBnbWFpbC5jb20+iQI+BBMBAgAo +BQJVipQXAhsDBQkDFwQABgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCQyAGe +NsLpZOBRD/wLfujEC4ZYMFwPXnhvOGEWAPeuOg06iXhEqJ1biOvxhFfwwjPoXGMQ +i/pdfGck5xZVFcxObpdHBp0p9ardos1aRXAS8JTnTQXTX0qs0QNxnLTBz+5DrIc4 +l7r5DAlr/FapUKNSbjobOrbv+F371b7XhLJ7oob5XXo+IS7kEY+Si5BXb0uVy8ms +SaKDooO2RfByrFI3LTHW3VESuuNnXgH6309yeGORgBazKtnxZPPlD2raTNXe9q7U +dF2Xv6Rr53iCGGN5xncL5A6nF3fou0tGvqLFBkrs4BqeNNwC6/jQLfpOfqiQ+XGR +q1KmT9E5E1qRXOb1Fc2koIUt/mSzRzxfxaEjI1UR0I4QtPsF2aP11sOJ1MJXyrEi +Kx1Nb0eUAYw0ZLTfm+uToUUTXzaB5gZqxmyY/eRFddCuGn+UwZnCiUImCWuk5yLq +ivyNbPfD1nwiZqNd879DkwFovNQfbOes4gfZyS28FXuYD/3mNN2WqGeJHZBGpglR +8EbiuJcgo7wPVC7aiIG0deSe6Flw04f2JE75zBKbzWccydtk16GzUBorbhJ4+Q7V +ikss1m4O/hDCU32t9V02+666l0ewM3H7AlTGxmWPWcaeADkywDHGb3frZU8Wh7to +e8I7ST0ap2vf11stL4Ejeyymcy2Xx1S7C57GuBSBCMJv962YIalk+4kBHAQQAQoA +BgUCVYqVFgAKCRB0gQsBI0bJpmthB/9tHtBEUuR9Ce1HBWin8AG18FDhw+019GvK +uMysu004imrPQRnH+I780W3htFBFhiZ+yhSllb4sJrW5awitIQxxe3V+xcDjyidh +32GjKDXvb4GHHuDC6uK2Hj0PB8XfqT1O1eCN3E/tn00al6qx/SvLnhW0BlqWwvVh +cJpQE5pa7E97Gw+arD1/XPy0WRX8SuEphdZ+sN1tP8yZZK8Bvi0rz+p0n5aop6Z6 +6Fj2buJnVQK6xDfXwt6/F5s7lyx1QKC4wF0MiMA8jv2KkbFEuiuiteNynrsGV7UZ +0VNvCdXe1cDKPnC64HP7nPluFRMLZbWq4DESbfGCCrmzz7f7eAEn +=mufP +-----END PGP PUBLIC KEY BLOCK-----