Actions

Dev/Build Documentation/monero-gui

From Whonix

< Dev‎ | Build Documentation


The build process of building any of the packages by Whonix developers is always very similar. This very wiki page explain how to build package monero-gui. By replacing the name of the package monero-gui with the name of any other package you might be interested in building, the other package would be build. You have two options.

Get Build Dependencies[edit]

Update your package lists.

sudo apt update

Install from Debian repository.

sudo apt install build-essential devscripts git

Change Directory to Build Folder[edit]

This chapter is recommended for better usability, but is not strictly required. [1]

Create folder ~/monero-gui-build.

mkdir -p ~/monero-gui-build

Change directory to folder ~/monero-gui-build.

cd ~/monero-gui-build

Get the Source Code[edit]

Get the the package's source code.

git clone https://github.com/Whonix/monero-gui.git

Remember it is Whonix, not whonix! If you are prompted for a username for github, it means you have mistyped the web address.

Get the Signing Key[edit]

Get the Signing Key

This chapter is recommended for better security, but it is not strictly required. (See Trust)

1. Download Patrick Schleizer (adrelanos) OpenPGP key. derivative.asc

Note: If Whonix ™ is already being used, this process can be simplified. See the footnotes. [2]

2. Store it as patrick.asc.

3. Import the key.

gpg --import patrick.asc

4. Verify the key using this fingerprint.

gpg --fingerprint 916B8D99C38EAF5E8ADC7A2A8D66066A2EEACCDA

The output should show.

pub   rsa4096 2014-01-16 [SC] [expires: 2021-04-17]
      916B 8D99 C38E AF5E 8ADC  7A2A 8D66 066A 2EEA CCDA
uid           [  full  ] Patrick Schleizer <adrelanos@riseup.net>
sub   rsa4096 2014-01-16 [E] [expires: 2021-04-17]
sub   rsa4096 2014-01-16 [A] [expires: 2021-04-17]
sub   rsa4096 2014-01-16 [S] [expires: 2021-04-17]

5. This only retrieves the signing key from one source. For better security, learn more about the Whonix ™ Signing Key.

Change Directory[edit]

Get into the package's source code folder because later on package build commands using make are expected to be run from the root of the source folder.

cd monero-gui

OpenPGP Verify the Source Code[edit]

OpenPGP Verify the Source Code

This chapter is recommended for better security, but is not strictly required.[3]

Retrieve a list of available git tags.

git --no-pager tag

Verify the tag you want to build. Replace it with the tag chosen to build.

git tag -v 0.1

The output should look similar to this.

object 1844108109a5f2f8bddcf2257b9f3675be5cfb22
type commit
tag {{{version}}}
tagger Patrick Schleizer <adrelanos@whonix.org> 1392320095 +0000

.
gpg: Signature made Thu 13 Feb 2014 07:34:55 PM UTC using RSA key ID 77BB3C48
gpg: Good signature from "Patrick Schleizer <adrelanos@whonix.org>" [ultimate]

The warning.

gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.

Is explained on the Whonix ™ Signing Key page and can be safely ignored.

Choose Version[edit]

Retrieve a list of available git tags.

git --no-pager tag

Use git checkout to select the preferred version to build.

Note: Replace 16.0.3.7-stable with the actual tag you want to build.

git checkout  0.1

Check Git[edit]

Check if you really got the version you want.

git describe

The output should show.

0.1

Check if the source folder is pristine.

git status

The output should show nothing.

HEAD detached at 0.1
nothing to commit, working tree clean

If it shows something else, do not continue.

Check Git[edit]

Check if you really got the version you want.

git describe

The output should show.

0.1

Check if the source folder is pristine.

git status

The output should show nothing.

HEAD detached at 0.1
nothing to commit, working tree clean

If it shows something else, do not continue.

Check Git[edit]

Check if you really got the version you want.

git describe

The output should show.

0.1

Check if the source folder is pristine.

git status

The output should show nothing.

HEAD detached at 0.1
nothing to commit, working tree clean

If it shows something else, do not continue.

Check Git[edit]

Check if you really got the version you want.

git describe

The output should show.

0.1

Check if the source folder is pristine.

git status

The output should show nothing.

HEAD detached at 0.1
nothing to commit, working tree clean

If it shows something else, do not continue.

Build the Package[edit]

Install build dependencies.

sudo mk-build-deps --remove --install

If that did not work, have a look in debian/control file and manually install all packages listed under Build-Depends and Depends.

Build the package without signing it (not required for personal use) and install it.

dpkg-buildpackage -b

Build Result[edit]

When a package is build using dpkg-buildpackage the resulting packages will be created in the parent folder. I.e. in this case in the ~/monero-gui-build folder.

ls ../

Should show something like this.

monero-gui monero-gui0.1-1_amd64.buildinfo monero-gui0.1-1_amd64.changes

Install the Package[edit]

The package can be found in the parent folder.

sudo dpkg -i ../monero-gui*.deb

Clean Up[edit]

Delete temporary files debhelper files in package source folder as well as debhelper artifacts (.deb file etc.) in parent folder.

1) Show extraneous (temporary files debhelper) files.

git clean -ndff

2) NOTE: Read above output carefully if you added files of your own files to that folder.

If that looks good, actually remove.

git clean -dff

3) Delete debhelper artifacts (.deb file etc.) in parent folder.

TODO: document

Footnotes[edit]

  1. When a package is build using dpkg-buildpackage the resulting packages will be created in the parent folder. It's better for usability if this is not the user's home folder since many other files may already reside there. Thereby making the build result files more difficult to find or delete. This is a missing Debian feature. See: dpkg-buildpackage: support output directory other than .. [archive]
  2. Steps 1-3 can be completed with just one command.
    gpg --import /usr/share/whonix/whonix-keys.d/derivative.asc

  3. See Trust.


Fosshost is sponsors Kicksecure ™ stage server 100px
Fosshost About Advertisements

Search engines: YaCy | Qwant | ecosia | MetaGer | peekier | Whonix ™ Wiki


Follow: 1024px-Telegram 2019 Logo.svg.png Iconfinder Apple Mail 2697658.png Twitter.png Facebook.png Rss.png Reddit.jpg 200px-Mastodon Logotype (Simple).svg.png

Support: Discourse logo.png

Donate: Donate Bank Wire Paypal Bitcoin accepted here Monero accepted here Contribute

Whonix donate bitcoin.png Monero donate Whonix.png United Federation of Planets 1000px.png

Twitter-share-button.png Facebook-share-button.png Telegram-share.png link=mailto:?subject=Dev/Build Documentation/monero-gui&body=../../Dev/Build_Documentation/monero-gui link=https://reddit.com/submit?url=../../Dev/Build_Documentation/monero-gui&title=Dev/Build Documentation/monero-gui link=https://news.ycombinator.com/submitlink?u=../../Dev/Build_Documentation/monero-gui&t=Dev/Build Documentation/monero-gui link=https://mastodon.technology/share?message=Dev/Build Documentation/monero-gui%20../../Dev/Build_Documentation/monero-gui&t=Dev/Build Documentation/monero-gui

Interested in becoming an author for the Whonix ™ News Blog or writing about anonymity, privacy and security? Please get in touch!

https link onion link Priority Support | Investors | Professional Support

Whonix | © ENCRYPTED SUPPORT LP | Heckert gnu.big.png Freedom Software / Osi standard logo 0.png Open Source (Why?)

The personal opinions of moderators or contributors to the Whonix ™ project do not represent the project as a whole.

By using our website, you acknowledge that you have read, understood and agreed to our Privacy Policy, Cookie Policy, Terms of Service, and E-Sign Consent.