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 your package lists:
sudo apt-get update
sudo apt-get install git
Get the the package's source code.
Remember it's 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 not strictly required. (See Trust)
1. Download Patrick Schleizer (adrelanos) OpenPGP key. patrick.asc
(If you are already using Whonix, this can be simplified. See 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
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. Only getting the signing key from one source. For better security, Learn about Whonix Signing Key.
Get into the package's source code folder.
OpenPGP Verify the Source Code
This chapter is recommended for better security, but not strictly required.
Get a list of available git tags.
Verify the tag you want to build. Replace with tag you want to build.
git tag -v 0.1
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 ignored.
Git checkout, which version (or git branch) you want to build.
In case you want to build a specific git tag.
git checkout 184.108.40.206.4-stable
You have to replace 220.127.116.11.4 with the actual version you want to build. The stable version, the testers-only version or the developers version. Common sense is required while choosing the right version number. For example, the biggest version number is not necessarily the most recommended / latest stable version. You can learn about current versions reading Whonix News Blogs. New versions are also announced on the whonix-devel mailing list. So you could alternatively check its archives. Signing up for whonix-devel is another way to get informed about new releases.
Clean up and Sanitize
This is also important for security.
Get a list of eventually extraneous files and folders. 
git clean -ndff
And look if that looks sane. (Generally should, unless you are modifying Whonix's source code, then you should understand git a bit better and know what you are doing.) If it looks like the following, everything is fine.
Would remove packages/apparmor-profile-gwenview/ Would remove packages/kde-privacy/
Now get rid of these folders.
git clean -dff
Removing packages/apparmor-profile-gwenview/ Removing packages/kde-privacy/
Make sure you have checked out the right commit for each git submodule.
git submodule update --init --recursive
Check if there are no extraneous files. This is important for security.
Should only show and nothing else.
# Not currently on any branch. nothing to commit (working directory clean)
Otherwise we'd need to get rid of these files 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
Step 1, 2 and 3 can be done by just one command.
gpg --import /usr/share/whonix/whonix-keys.d/patrick.asc
- See Trust.
- There currently is a small issue. (A limitation of git.)
Impressum | Datenschutz | Haftungsausschluss
Conditions for Contributions to Whonix, then Edit! IP addresses are scrubbed, but editing over Tor is recommended. Edits are held for moderation. Whonix (g+) is a licensee of the Open Invention Network. Unless otherwise noted above, the content of this page is copyrighted and licensed under the same Free (as in speech) license as Whonix itself.