{{Header}} {{#seo: |description=Design Documentation about Redistribution of {{project_name_long}} }} {{intro| Design Documentation about Redistribution of {{project_name_short}} }} == Introduction == Developers only! These are notes for producing official [[Download|downloadable]] binary {{project_name_short}} images. == Before Major Release 18 == * update repository origin value as per https://www.kicksecure.com/wiki/Dev/APT#changed_its_'Origin'_value_from_'whonix'_to_'kicksecure' == Pre Building == {{Box|text= '''Only required if you want to redistribute (official) {{project_name_short}} builds.''' {{Box|text= * check if https://github.com/{{project_name_short}}/kicksecure-base-files/blob/master/etc/kicksecure_version needs update * package timesanitycheck: ./usr/share/timesanitycheck/date-minimum-file-create * [[Dev/Maintenance]] Clean source code * get rid of .directory files inside the source code: thunarpreferencesgeneralbehavioruse common view properties for all folders * Get rid of ~backup files. In other words, get rid of files starting with ~. {{CodeSelect|code= find ./ -name '*~' {{!}} xargs trash-put }} * You can get a list of unwanted files with git clean -dfxn and remove them with git clean -dfx. * Update {{project_name_short}} 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. {{CodeSelect|code= ~/derivative-maker/packages/kicksecure/developer-meta-files/debug-steps/packaging-helper-script pkg_verify_signed_commit_and_tag }} * push the source code to github {{CodeSelect|code= git push origin master }} * Check, that the current git commit is a signed. You might wish using a git or bash alias to safe typing. {{CodeSelect|code= git log --show-signature HEAD^..HEAD }} Or use the generic makefile as a shortcut. {{CodeSelect|code= make git-commit-verify }} * Create an OpenPGP signed git tag. This will also be used as {{project_name_short}} version number. {{CodeSelect|code= 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. {{CodeSelect|code= make git-verify }} * Push the OpenPGP signed git tag to github. {{CodeSelect|code= git push origin version }} * Enable {{project_name_short}} stable repository by default. {{CodeSelect|code= export DERIVATIVE_APT_REPOSITORY_OPTS='--enable --repository stable' }} * And use sudo -E so above environment is kept. }} }} == Building == === Build === Build {{project_name_gateway_long}}. For example {{project_name_gateway_long}} with Xfce for VirtualBox. {{CodeSelect|code= sudo -E ./derivative-maker --build --repo true --target virtualbox --flavor whonix-gateway-xfce }} Build {{project_name_workstation_long}}. For example {{project_name_workstation_long}} with Xfce for VirtualBox. {{CodeSelect|code= sudo -E ./derivative-maker --build --repo true --target virtualbox --flavor whonix-workstation-xfce }} For other options and platforms also see [[Dev/Build_Documentation|build documentation]]. == Post Building == {{Box|text= '''Only required if you want to redistribute (official) {{project_name_short}} builds.''' {{Box|text= * [[Dev/APT Repository]] }} }} {{Box|text= '''Image Signing''' * '''A)''' own custom builds: '''Optionally''' sign the images. * '''B)''' official {{project_name_short}} builds: '''Mandatory''' sign the images. {{Box|text= * OpenPGP sign the images. {{CodeSelect|code= ~/derivative-maker/packages/kicksecure/developer-meta-files/release/dm-prepare-release --flavor whonix-workstation --target virtualbox --build }} }} }} {{Box|text= {{Box|text= '''Only required if you want to redistribute (official) {{project_name_short}} builds.''' }} * Upload the images. {{CodeSelect|code= ~/derivative-maker/packages/kicksecure/developer-meta-files/release/upload_images }} }} === Testing === * {{CodeSelect|code= /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. * Whonix only: [https://www.whonix.org/wiki/Dev/Leak_Tests Leak Tests]! * [[Test]] the images before final release! (Testers-only releases can be uploaded straight away.) === Update Permanent Links === {{Box|text= Update permalinks.
sudoedit /etc/nginx/conf.d/download_redirects
cacheclear-minimal
([https://phabricator.whonix.org/T895 ticket]) }} === Git Tag === Create -testers-only or -stable git tag. === Announcement Text Creation === Create Changelog and Announcement. {{CodeSelect|code= ./debug-steps/packaging-helper-script pkg_git_packages_git_log_writer }} === Wiki Page Updates === {{Box|text= '''Only required if you want to redistribute (official) {{project_name_short}} builds.''' {{Box|text= * Check, if [[Tor Browser/Manual Download]] is still up to date. * Update [[Download|Download Table]]. * See if the download table works in Tor Browser using New Identity. * Update [[Known Issues]]. * See if [[Documentation]] still makes sense. * Search the wiki for [[Special:WhatLinksHere/Template:Stable]] and [[Special:WhatLinksHere/Template:Testing]] and act accordingly. * Update links on the [[Dev/Build Documentation]] page. * Update [[Features]]. * Update [[Template:VersionNew]]. * Update [[Template:VersionShort]]. * Incorporate new documentation which has been prepared on the page: [[Next]]. * [[Template:Stable_project_version_based_on_Debian_codename]] * [[Template:Stable_project_version_based_on_Debian_version_short]] * [[Template:Debian_Codename_Testing]] * Copy/move contents from [[Testers Release]] to [[Release Notes]]. * Instructions containing backports. }} }} === Misc === {{Box|text= '''Only required if you want to redistribute (official) {{project_name_short}} builds.''' {{Box|text= * See https://github.com/{{project_name_short}}?utf8=%E2%9C%93&q=deprecated&type=&language= for deprecated repositories to be deleted. * https://www.qubes-os.org/doc/supported-releases/#templates * ask for an announcement on https://www.qubes-os.org/news/ ** (similar to https://www.qubes-os.org/news/2018/08/07/whonix-14-has-been-released/) ** (similar to https://github.com/QubesOS/qubes-posts/blob/master/2018-08-07-whonix-14-has-been-released.md) ** (similar to https://github.com/QubesOS/qubes-issues/issues/4193) }} }} * https://github.com/QubesOS/qubes-mgmt-salt-dom0-virtual-machines/blob/master/qvm/whonix.jinja === Announcement === {{Box|text= '''Only required if you want to redistribute (official) {{project_name_short}} builds.''' {{Box|text= ==== Contents ==== * introduction (what is {{project_name_short}}) (The release announcement may be the first thing that new people who learn about {{project_name_short}} see.) * similar to https://forums.whonix.org/t/whonix-14-has-been-released * deprecation notice of old {{project_name_short}} version with date of deprecation ==== Where ==== * Finally announce: Post a news. (Not nagging external lists. Common sense. Mostly only final releases.) ** In {{project_name_short}} Important and Feature Blog. ** https://lists.debian.org/debian-derivatives/ *** debian-derivatives@lists.debian.org ** https://lists.torproject.org/pipermail/tor-talk/ *** tor-talk@lists.torproject.org ** https://nmap.org/mailman/listinfo/fulldisclosure *** fulldisclosure@seclists.org ** Also this will do the job as well: *** [[Official Online Profiles#{{project_name_short}}_Forums_Profiles|{{project_name_short}} Forums Profiles]] }} }} === Cleanup === * any deprecated repositories (none at time of writing) = Related = * To quality of redistributable builds: [[Dev/Installation_from_Repository#Distro_Morphing_vs_Builds|Distro Morphing vs Builds]] = Footnotes = {{reflist|close=1}} {{Footer}} [[Category:Development]] [[Category:Design]]