Jump to: navigation, search

Dev/Build Documentation/apparmor-profile-torbrowser

Get Build Dependencies[edit]

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) [1] 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[edit]

Update your package lists:

sudo apt-get update

Install git:

sudo apt-get install git

Get the the package's source code.

git clone https://github.com/Whonix/apparmor-profile-torbrowser.git

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[edit]

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])

2. Store it as patrick.asc.

3. Import the key:

gpg --import patrick.asc

4. Verify the key using this fingerprint:

gpg --fingerprint 916B8D99C38EAF5E8ADC7A2A8D66066A2EEACCDA

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 <adrelanos@riseup.net> 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.

Change Directory[edit]

Get into the package's source code folder.

cd apparmor-profile-torbrowser

OpenPGP Verify the Source Code[edit]

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

Get a list of available git tags.

git tag

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.

object 1844108109a5f2f8bddcf2257b9f3675be5cfb22 type commit tag 0.1 tagger Patrick Schleizer <adrelanos@riseup.net> 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@riseup.net>" [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 ignored.

Choose Version[edit]

Git checkout, which version (or git branch) you want to build.

In case you want to build a specific git tag.

git checkout

You have to replace 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.

Clean up and Sanitize[edit]

This is also important for security.

Get a list of eventually extraneous files and folders. [4]

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

Should show.

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.

git status

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[edit]

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.


make deb-icup

Of if you want to install with debugging enabled, click on expand on the right.

export DEBDEBUG=1
make deb-icup

Clean Up[edit]

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

make deb-cleanup


  1. 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
    cd genmkfile
    make deb-icup
  2. Step 1, 2 and 3 can be done by just one command.
    gpg --import /usr/share/whonix/whonix-keys.d/patrick.asc
  3. See Trust.
  4. There currently is a small issue. (A limitation of git.)

Random News:

There are five different options for subscribing to Whonix source code changes.

Impressum | Datenschutz | Haftungsausschluss

https | (forcing) onion
Share: Twitter | Facebook | Google+
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. 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.