Dev/Build Documentation/security-misc
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 security-misc
. By replacing the name of the package security-misc with the name of any other package you might be interested in building, the other package would be build. You have two options.
- A) Instructions on this page about how to build the security-misc package from source code while verifying software signatures for better security. OR
- B) Easier instructions click here.
Get Build Dependencies[edit]
Update your package lists.
Install from Debian repository.
Change Directory to Build Folder[edit]
This chapter is recommended for better usability, but is not strictly required. [1]
Create folder ~/security-misc-build
.
Change directory to folder ~/security-misc-build
.
Get the Source Code[edit]
Get the the package's source code.
- git clone https://github.com/Kicksecure/security-misc.git
- OR (One or the other command should work. Depending on where the package belongs.)
- git clone https://github.com/Whonix/security-misc.git
Case sensitive. 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.
Note: If Whonix ™ is already being used, this process can be simplified. See the footnotes. [2]
2. Store it as derivative.asc
.
3. Import the key.
4. Verify the key using this fingerprint.
The output should show.
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.
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.
Verify the tag you want to build. Replace it with the tag chosen to build.
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.
Use git checkout to select the preferred version to build.
Note: Replace 16.0.9.0-stable
with the actual tag you want to build.
Build the Package[edit]
Install build dependencies.
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.
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 ~/security-misc-build
folder.
Should show something like this.
security-misc security-misc0.1-1_amd64.buildinfo security-misc0.1-1_amd64.changes
Install the Package[edit]
The package can be found in the parent folder.
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.
2) NOTE: Read above output carefully if you added files of your own files to that folder.
If that looks good, actually remove.
3) Delete debhelper artifacts (.deb file etc.) in parent folder.
TODO: document
Footnotes[edit]
- ↑
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 .. - ↑
Steps 1-3 can be completed with just one command.
gpg --import /usr/share/whonix/whonix-keys.d/derivative.asc
- ↑ See Trust.