Dev/Redistribution

From Kicksecure
< Dev
Jump to navigation Jump to search

Design Documentation about Redistribution of Kicksecure

Introduction[edit]

Developers only!

These are notes for producing official downloadable binary Kicksecure images.

Before Major Release 18[edit]

Pre Building[edit]

Only required if you want to redistribute (official) Kicksecure builds.

Clean source code

  • [1]
  • [2]
  • You can get a list of unwanted files with git clean -dfxn and remove them with git clean -dfx.
  • Update Kicksecure debian package repository.
  • add your own default-key to your own /home/user/.gnupg/gpg.conf.
  • Check that all packages point to a signed git commit and signed git tag.

~/derivative-maker/packages/kicksecure/developer-meta-files/debug-steps/packaging-helper-script pkg_verify_signed_commit_and_tag

  • push the source code to github

git push origin master

  • Check, that the current git commit is a signed. [3]

git log --show-signature HEAD^..HEAD

Or use the generic makefile as a shortcut.

make git-commit-verify

  • Create an OpenPGP signed git tag. This will also be used as Kicksecure version number.

git tag -s version

  • Make sure the current git head is a signed git commit and signed git tag.

To simplify this, you could use the generic makefile.

make git-verify

  • Push the OpenPGP signed git tag to github.

git push origin version

  • Enable Kicksecure stable repository by default.

export DERIVATIVE_APT_REPOSITORY_OPTS='--enable --repository stable'

  • And use sudo -E so above environment is kept.

Building[edit]

Build[edit]

Build Kicksecure. For example Kicksecure with Xfce for VirtualBox.

sudo -E ./derivative-maker --build --repo true --target virtualbox --flavor whonix-gateway-xfce

Build Kicksecure. For example Kicksecure with Xfce for VirtualBox.

sudo -E ./derivative-maker --build --repo true --target virtualbox --flavor whonix-workstation-xfce

For other options and platforms also see build documentation.

Post Building[edit]

Only required if you want to redistribute (official) Kicksecure builds.

Image Signing

  • A) own custom builds: Optionally sign the images.
  • B) official Kicksecure builds: Mandatory sign the images.
  • OpenPGP sign the images.

~/derivative-maker/packages/kicksecure/developer-meta-files/release/dm-prepare-release --flavor whonix-workstation --target virtualbox --build

Only required if you want to redistribute (official) Kicksecure builds.

  • Upload the images.

~/derivative-maker/packages/kicksecure/developer-meta-files/release/upload_images

Testing[edit]

  • /usr/share/whonix-ws-firewall/unit_tests/stream_isolation_test
  • At least a few testers should test final releases before posting a news. Testers may be found by posting a news.
  • LeakTests!
  • Test the images before final release! (Testers-only releases can be uploaded straight away.)

Update Permanent Links[edit]

Update permalinks.

sudoedit /etc/nginx/conf.d/download_redirects
cacheclear-minimal

(ticketarchive.org)

Git Tag[edit]

Create -testers-only or -stable git tag.

Announcement Text Creation[edit]

Create Changelog and Announcement.

./debug-steps/packaging-helper-script pkg_git_packages_git_log_writer

Wiki Page Updates[edit]

Only required if you want to redistribute (official) Kicksecure builds.

Misc[edit]

Announcement[edit]

Only required if you want to redistribute (official) Kicksecure builds.

Contents

Where

Cleanup[edit]

  • any deprecated repositories (none at time of writing)

Related[edit]

Footnotes[edit]

  1. get rid of .directory files inside the source code: thunarpreferencesgeneralbehavioruse common view properties for all folders
  2. Get rid of ~backup files. In other words, get rid of files starting with ~. find ./ -name '*~' | xargs trash-put
  3. You might wish using a git or bash alias to safe typing.

We believe security software like Kicksecure needs to remain Open Source and independent. Would you help sustain and grow the project? Learn more about our 12 year success story and maybe DONATE!