Skip to content

Commit 6a0834b

Browse files
committed
chore: remove redundant words in comment
Signed-off-by: xihuwenhua <xihuwenhua@outlook.com>
1 parent 0149f94 commit 6a0834b

2 files changed

Lines changed: 31 additions & 31 deletions

File tree

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
1-
# Building the Installer Deterministically
2-
3-
This file contains info about building the Windows installer deterministically, i.e. how different people on different Windows machines or VMs can build it and arrive at a result that is bit-for-bit identical. This approach is also known as *reproducible builds*, see e.g. [this Wikipedia article](https://en.wikipedia.org/wiki/Reproducible_builds).
4-
5-
The steps to build the Windows installer deterministically by a group of people are the following (for some details about the build process in general see `README.md`):
6-
7-
* Agree on a particular version of Inno Setup, and everybody install that
8-
* Get the zip file for the Windows GUI wallet and unpack it, plus make sure / check that the file timestamps are preserved, i.e. upacked timestamp = timestamp in zip file
9-
* Build using Inno Setup and the `Monero.iss` script file
10-
* Success: All people arrive at a bit-for-bit identical installer .exe file, which they can verify by calculating and exchanging SHA256 hashes
11-
12-
Some background info why this process is relatively simple:
13-
14-
The tool used to build the Windows installer, Inno Setup, avoids many issues that make reproducible builds very challenging with many other compilers and similar tools: It does not store current date and time in the installer .exe file, and it does not seem to depend on the Windows version it runs on (tried with Windows 7 and two different editions of Windows 10), nor on the locale and display language.
15-
16-
So fortunately no complicated things as faked current system time or use of VMs with exactly prescribed versions of Windows are necessary.
17-
18-
The version of Inno Setup **is** important however: People wanting to reproducibly build the installer must agree on a particular version to use. This should not be hard to do however.
19-
20-
Also important are the **timestamps** of the source files because they go into the installer file, to be restored at install time.
21-
22-
You would think timestamp preservation is no problem when unpacking the zip archive with the files for the Windows GUI wallet from getmonero.org, but if you use the zip folder unpack functionality of the Windows 7 GUI, the files get the current date, **not** the file recorded in the zip file. (The Windows 10 GUI seems better here, and also the 7zip app.)
23-
24-
In any case, after unpacking, check the file dates in the `bin` directory where the installer script looks for them with the dates of the files in the zip file: They must be identical.
25-
26-
Note that the the following line in `Monero.iss` is also important regarding file timestamps:
27-
28-
TimeStampsInUTC=yes
29-
30-
Without this line the **timezone** of the machine used to build the installer would matter, with different timezones leading to different installer files.
1+
# Building the Installer Deterministically
2+
3+
This file contains info about building the Windows installer deterministically, i.e. how different people on different Windows machines or VMs can build it and arrive at a result that is bit-for-bit identical. This approach is also known as *reproducible builds*, see e.g. [this Wikipedia article](https://en.wikipedia.org/wiki/Reproducible_builds).
4+
5+
The steps to build the Windows installer deterministically by a group of people are the following (for some details about the build process in general see `README.md`):
6+
7+
* Agree on a particular version of Inno Setup, and everybody install that
8+
* Get the zip file for the Windows GUI wallet and unpack it, plus make sure / check that the file timestamps are preserved, i.e. upacked timestamp = timestamp in zip file
9+
* Build using Inno Setup and the `Monero.iss` script file
10+
* Success: All people arrive at a bit-for-bit identical installer .exe file, which they can verify by calculating and exchanging SHA256 hashes
11+
12+
Some background info why this process is relatively simple:
13+
14+
The tool used to build the Windows installer, Inno Setup, avoids many issues that make reproducible builds very challenging with many other compilers and similar tools: It does not store current date and time in the installer .exe file, and it does not seem to depend on the Windows version it runs on (tried with Windows 7 and two different editions of Windows 10), nor on the locale and display language.
15+
16+
So fortunately no complicated things as faked current system time or use of VMs with exactly prescribed versions of Windows are necessary.
17+
18+
The version of Inno Setup **is** important however: People wanting to reproducibly build the installer must agree on a particular version to use. This should not be hard to do however.
19+
20+
Also important are the **timestamps** of the source files because they go into the installer file, to be restored at install time.
21+
22+
You would think timestamp preservation is no problem when unpacking the zip archive with the files for the Windows GUI wallet from getmonero.org, but if you use the zip folder unpack functionality of the Windows 7 GUI, the files get the current date, **not** the file recorded in the zip file. (The Windows 10 GUI seems better here, and also the 7zip app.)
23+
24+
In any case, after unpacking, check the file dates in the `bin` directory where the installer script looks for them with the dates of the files in the zip file: They must be identical.
25+
26+
Note that the following line in `Monero.iss` is also important regarding file timestamps:
27+
28+
TimeStampsInUTC=yes
29+
30+
Without this line the **timezone** of the machine used to build the installer would matter, with different timezones leading to different installer files.

wizard/WizardCreateWallet2.qml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ Rectangle {
8686
visible: false
8787
text: qsTr("Print this paper, fill it out, and keep it in a safe location. Never share your recovery phrase with anybody, especially with strangers offering technical support.") +
8888
qsTr("Recovery phrase (mnemonic seed)") +
89-
qsTr("These words are are a backup of your wallet. They are the only thing needed to access your funds and restore your Monero wallet, so keep this paper in a safe place and do not disclose it to anybody! It is strongly not recommended to store your recovery phrase digitally (in an email, online service, screenshot, photo, or any other type of computer file).") +
89+
qsTr("These words are a backup of your wallet. They are the only thing needed to access your funds and restore your Monero wallet, so keep this paper in a safe place and do not disclose it to anybody! It is strongly not recommended to store your recovery phrase digitally (in an email, online service, screenshot, photo, or any other type of computer file).") +
9090
qsTr("Wallet creation date") +
9191
qsTr("Wallet restore height") +
9292
qsTr("For instructions on how to restore this wallet, visit www.getmonero.org and go to Resources > User Guides > \"How to restore a wallet from mnemonic seed\". Use only Monero wallets that are trusted and recommended by the Monero community (see a list of them in www.getmonero.org/downloads).") + translationManager.emptyString

0 commit comments

Comments
 (0)