Get Build Dependencies
Update your package lists.
sudo apt-get update
Install from Debian repository.
sudo apt-get install devscripts dh-apparmor faketime git
Install genmkfile. Either,
- a) from source code (see footnote on how to do that)  or alternatively,
- b) if you are already using Whonix, you could easily install it from Whonix repository:
sudo apt-get install genmkfile
Get the Source Code
Update the package lists.
sudo apt-get update
sudo apt-get install git
Get the the package's source code.
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
This chapter is recommended for better security, but it is not strictly required. (See Trust)
1. Download Patrick Schleizer (adrelanos) OpenPGP key. patrick.asc
Note: If Whonix is already being used, this process can be simplified. See the footnotes. 
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 4096R/2EEACCDA 2014-01-16 [expires: 2016-10-05]
Key fingerprint = 916B 8D99 C38E AF5E 8ADC 7A2A 8D66 066A 2EEA CCDA
uid [unknown] Patrick Schleizer <email@example.com> sub 4096R/CE998547 2014-01-16 [expires: 2016-10-05] sub 4096R/119B3FD6 2014-01-16 [expires: 2016-10-05] sub 4096R/77BB3C48 2014-01-16 [expires: 2016-10-05]
5. This only retrieves the signing key from one source. For better security, learn more about the Whonix Signing Key.
Get into the package's source code folder.
OpenPGP Verify the Source Code
This chapter is recommended for better security, but is not strictly required.
Retrieve a list of available git tags.
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.
tagger Patrick Schleizer <firstname.lastname@example.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 <email@example.com>" [ultimate]
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.
Use git checkout to select the preferred version (or git branch) to build.
In order to build a specific git tag.
git checkout 220.127.116.11.4-stable
Replace 18.104.22.168.4 with the actual version chosen for the build: the stable, testers-only or developers version. Common sense is required when choosing the right version number. For example, the latest available version number is not necessarily the most stable or suitable. To learn more about current Whonix versions, follow the Whonix News Blog.
Clean Up and Sanitize
This step is also important for security.
Retrieve the list of extraneous files and folders. 
git clean -ndff
See if the output looks sane; it generally should, unless Whonix source code is modified by advanced users (who understand git better anyhow). If the output looks like the following, everything is fine.
Would remove packages/apparmor-profile-gwenview/ Would remove packages/kde-privacy/
Remove these folders.
git clean -dff
The output should show.
Removing packages/apparmor-profile-gwenview/ Removing packages/kde-privacy/
Be sure to check out the right commit for each git submodule.
git submodule update --init --recursive
Check there are no extraneous files. This is important for security.
The output should show the following and nothing else.
# Not currently on any branch. nothing to commit (working directory clean)
If the directory is not clean, the extra files should be removed first.
Build and Install the Package
Have a look in
debian/control file. Manually install all packages under Build-Depends on Depends.
Build the package without signing it (not required for personal use) and install it.
Of if you want to install with debugging enabled, click on expand on the right.
Clean up temporary files debhelper files in package source folder as well as debhelper artifacts (.deb file etc.) in parent folder.
You can use the same instructions as on this page. Just replace the package name to genmkfile.
git clone https://github.com/Whonix/genmkfile.git
Steps 1-3 can be completed with just one command.
gpg --import /usr/share/whonix/whonix-keys.d/patrick.asc
- See Trust.
- There is currently a small issue with this process (a limitation of git).
Impressum | Datenschutz | Haftungsausschluss
This is a wiki. Want to improve this page? Help is welcome and volunteer contributions are happily considered! See Conditions for Contributions to Whonix, then Edit! IP addresses are scrubbed, but editing over Tor is recommended. Edits are held for moderation.