Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
888 commits
Select commit Hold shift + click to select a range
4851518
Improve wording
Jun 24, 2021
3806ecf
Remove extra newlines at the beginning/end of files
marmarek Jun 24, 2021
1d40a95
Sort frontmatter entries
marmarek Jun 24, 2021
a45c7cb
Fix core team link
marmarek Jun 24, 2021
4017d11
Run script to add 'ref' parameters
marmarek Jun 24, 2021
1ddbdc7
Merge branch 'patch-57' of https://github.com/adrelanos/qubes-doc int…
Jun 26, 2021
38fb297
Wrap text
Jun 26, 2021
05db1e7
Merge branch 'adrelanos-patch-57'
Jun 26, 2021
0c699de
Merge branch 'skip-autostart' of https://github.com/fepitre/qubes-doc…
Jun 26, 2021
10cdaf3
Fix filename to conform to section naming scheme
Jun 26, 2021
871d281
Update title and permalink to match filename
Jun 26, 2021
d9b061f
Copyedit
Jun 26, 2021
0e2160e
Merge branch 'fepitre-skip-autostart'
Jun 26, 2021
4f26651
Merge branch 'patch-17' of https://github.com/deeplow/qubes-doc into …
Jun 26, 2021
6318cba
merge remote
test90 Jun 26, 2021
30e3cbe
Merge branch 'deeplow-patch-17'
Jun 26, 2021
49253a1
merge rmeote origin
test90 Jun 26, 2021
04c8ea5
qubes-builder: fix typo in rpmmacros filename, improve its markup
ydirson Jun 26, 2021
b4e501f
Merge branch 'ydirson-rpmmacros-typo'
Jun 28, 2021
1c5aab4
Add guidelines regarding angled brackets around variables
Jun 28, 2021
decc413
Add CI section; document `PipelineRetry` command (#1149)
Jun 28, 2021
dc22de8
Document `TestDeploy`
Jun 29, 2021
3253b6b
Update `TestDeploy` documentation
Jun 29, 2021
a2e3dfe
Document qubes-secpack PGP key inclusion criteria
Jun 29, 2021
fd6c8e2
Document wwwtest vs. wwwpreview
Jun 29, 2021
a5a4f16
Update Qubes Forum URL
Jul 1, 2021
baa1df9
Update Qubes Forum URLs
Jul 1, 2021
dc0433e
Update how-to-use-block-storage-devices.md
ninavizz Jul 2, 2021
ca109b0
Change name back to "Getting Started" and move to intro
Jul 3, 2021
fcc90a5
Change title back to "Getting Started"
Jul 3, 2021
5220089
Update references to "Getting Started"
Jul 3, 2021
3806744
Fix capitalization
andrewdavidwong Jul 3, 2021
86cdf83
Merge branch 'patch-2' of https://github.com/ninavizz/qubes-doc into …
Jul 3, 2021
611670f
Merge branch 'ninavizz-patch-2'
Jul 3, 2021
28bfb5c
Capitalize second word in title case compound adjectives
Jul 3, 2021
bae7949
Capitalize second word in title case compound adjectives
Jul 4, 2021
5d9fa09
Update "Help, Support, Mailing Lists, and Forum"
Jul 5, 2021
779f3c4
Append periods to complete declarative sentence headings
Jul 5, 2021
9bb8a55
Use Markdown syntax instead of HTML
Jul 5, 2021
65c3dd0
Update "Issue Tracking"
Jul 5, 2021
440ca6a
Update Whonix links; add Privacy Policy links
Jul 5, 2021
41ed804
Wrap text; improve wording
Jul 5, 2021
0b5e300
Document template testing; improve related docs
Jul 5, 2021
d00c2d9
Minor improvements to the testbech instructions
deeplow Jul 5, 2021
9e0de52
add info on boot menu (part 1)
deeplow Jul 5, 2021
9d390bd
Use Markdown syntax instead of HTML
andrewdavidwong Jul 6, 2021
ad6bcf7
Update resume-suspend-troubleshooting.md
gw0 Jun 10, 2021
9849fea
add steps to run script on every boot
deeplow Jul 6, 2021
5972274
start also script
deeplow Jul 6, 2021
07da69b
Revamp "Documentation Guidelines"
Jul 6, 2021
ecd72e6
Merge branch 'patch-1' of https://github.com/gw0/qubes-doc into gw0-p…
Jul 6, 2021
321ee9d
Merge branch 'gw0-patch-1'
Jul 6, 2021
eca8b6f
Merge branch 'patch-22' of https://github.com/deeplow/qubes-doc into …
Jul 6, 2021
c4f5995
Merge branch 'deeplow-patch-22'
Jul 6, 2021
b3d9e00
Update installation-guide.md
deeplow Jul 6, 2021
a448289
remove duplicated information about boot device
deeplow Jul 6, 2021
9d2bc43
Replace all BIOS mentions with BIOS/UEFI
deeplow Jul 6, 2021
f4e726c
minor changes
deeplow Jul 6, 2021
64b1015
Reduce Windows confusion in renamed 'Installation medium preparation'…
dksmiffs Jul 8, 2021
c29cf40
Reorganize doc guidelines into multiple pages; update style guide
Jul 8, 2021
d9ce14a
Rename files in accordance with commit 676a13b
Jul 8, 2021
a867dbe
Add note about QubesOS/qubes-issues#6769
Jul 8, 2021
bc5276a
Improve section organization, formatting; fix link
Jul 8, 2021
e09d2d4
Use shorter anchor text for doc index link
Jul 8, 2021
d0bc9e7
Sentence case for titles
unman Jul 9, 2021
ad2c60d
Merge branch '6769' of https://github.com/unman/qubes-doc into unman-…
Jul 9, 2021
a18174d
Fix capitalization; update terms (QubesOS/qubes-issues#6769)
Jul 9, 2021
294e433
Remove note about QubesOS/qubes-issues#6769 (fixed)
Jul 9, 2021
f0a0fd3
Merge branch 'unman-6769' (closes QubesOS/qubes-issues#6769)
Jul 10, 2021
0309e79
Merge branch 'patch-23' of https://github.com/deeplow/qubes-doc into …
Jul 10, 2021
380e7b4
Fix and improve installation guide (#1172)
Jul 10, 2021
3f0977b
Fix typo; improve image titles (#1172)
Jul 10, 2021
ce900bf
Merge branch 'deeplow-patch-23'
Jul 10, 2021
f608865
Update doc style guide and instructions
Jul 10, 2021
473f107
Update example to reflect current style guide
Jul 10, 2021
6de3d7f
Fix typo
Jul 10, 2021
b9bf32e
Add section on serving website locally
Jul 10, 2021
ef34402
Cross-link doc style guide and how-to pages
Jul 10, 2021
7ecbf8f
Change "version" to "release"
Jul 10, 2021
039f2f8
Update filename
Jul 10, 2021
a1967f0
Fix typo
Jul 10, 2021
ca0ccab
Update titles and links
Jul 10, 2021
26b1a4d
Change "point relase" to "patch release" for precision
Jul 10, 2021
65f032a
Update patch release description for accuracy
Jul 10, 2021
e89bc97
Update terminology
Jul 10, 2021
6eea2bf
Fix typo
Jul 10, 2021
cc8155f
Undo change to 'Copying the ISO' header, not worth the broken links
dksmiffs Jul 11, 2021
d4d00ef
Merge tag 'adw_6eea2bf3'
dksmiffs Jul 11, 2021
4055787
Add clarification based on PR #1174 feedback
dksmiffs Jul 12, 2021
13f7997
Fix link to HTML syntax (#1174)
dksmiffs Jul 12, 2021
4ff7399
Copyedit
andrewdavidwong Jul 13, 2021
392c994
Merge branch 'dksmiffs-master'
Jul 14, 2021
c001d21
Update title to distinguish from main HCL page
Jul 14, 2021
7d894a5
Update filename to match new title
Jul 14, 2021
db56549
Move files back to qubes-doc so they can appear in index
Jul 14, 2021
715da55
test-bench: section on installing testing deps
deeplow Jul 15, 2021
d2e7232
minor fixes
deeplow Jul 15, 2021
d01ad9c
Fix htmlproofer errors in PRs #1176 & #1177...
dksmiffs Jul 16, 2021
4de71b3
Merge branch 'dksmiffs-master'
Jul 16, 2021
a0b355b
Move 'properly validated keys' guidance before git verification...
dksmiffs Jul 17, 2021
2896c01
Fix captization & add links
deeplow Jul 17, 2021
390f3eb
fix typo
deeplow Jul 17, 2021
98ca7b8
fix captizalization
deeplow Jul 17, 2021
c917f90
Fix lost referent on "this verification" (#1179)
dksmiffs Jul 17, 2021
481b757
Add missing article
andrewdavidwong Jul 19, 2021
9bb30e2
Resolve grammatical error, return to "this verification" wording (#1179)
dksmiffs Jul 19, 2021
90b4117
add bash as code-block language
deeplow Jul 19, 2021
649babd
Merge branch 'dksmiffs-master'
Jul 19, 2021
b59cbe5
Add another possible reason for "WARNING: This key is not certified...
dksmiffs Jul 18, 2021
161ef06
Fix headings
Jul 20, 2021
abdff3c
Merge branch 'master' of https://github.com/dksmiffs/qubes-doc into d…
Jul 20, 2021
39d4be0
Merge branch 'dksmiffs-master'
Jul 20, 2021
05dcacd
Revamp "Verifying signatures" and "Qubes security pack"
Jul 20, 2021
54525b2
Update links; fix typo
Jul 20, 2021
8a0ba67
Fix SaltStack document links
Jun 17, 2021
71ae00b
Use docs.saltproject.io for SaltStack document
Jun 17, 2021
0f7bc0d
Update "Verifying signatures" and "Qubes security pack"
Jul 20, 2021
e84a92f
Merge branch 'verifying-sigs-secpack'
Jul 20, 2021
f442af8
Fix link
Jul 20, 2021
6fe0e40
Merge branch 'fix20210614' of https://github.com/zpc0/qubes-doc into …
Jul 20, 2021
9ffc1f7
Merge branch 'zpc0-fix20210614'
Jul 20, 2021
0c048c5
Improve ordering, presentation, and organization of information
Jul 24, 2021
23d027d
add extra case for installation freezing
deeplow Jul 25, 2021
f403800
Avoid repeating the prereqs in the 'How to verify the [...] hash valu…
dksmiffs Jul 26, 2021
39926bd
Correct spelling error that broke the first #1184 check
dksmiffs Jul 26, 2021
f88cd02
fix typo
deeplow Jul 26, 2021
63a6399
Merge branch 'deeplow-patch-25'
Jul 26, 2021
322fe6c
Add sentence about joining the testing team
Jul 26, 2021
e5739da
Resolve some of the #1184 requested changes.
dksmiffs Jul 26, 2021
bcf233f
Merge branch 'master' of https://github.com/dksmiffs/qubes-doc into d…
Jul 27, 2021
3ccc966
Start links at verbs to match link target content
Jul 27, 2021
30df3b0
Merge branch 'dksmiffs-master'
Jul 27, 2021
ee309ab
Attempt to document `PipelineRefresh`
Jul 29, 2021
717810f
Document 'zenity' requirement for GUI inter-qube copying
Jul 29, 2021
79e359e
Clarify scope with respect to official vs. unofficial venues
Aug 2, 2021
a605052
Add "videos"
Aug 3, 2021
1b9ce8d
remove unneeded qubesd restart
deeplow Aug 4, 2021
b7dcfb6
Update developer/system/template-manager.md
andrewdavidwong Aug 5, 2021
f4177b4
Merge branch 'qvm-template' of https://github.com/WillyPillow/qubes-doc
Aug 5, 2021
59aab04
Revise in accordance with documentation style guide
Aug 5, 2021
725800e
Add "Just works" for R4.0.4 and the CPU info
SvenSemmler Aug 6, 2021
c758834
Merge branch 'SvenSemmler-patch-1'
Aug 7, 2021
1c02142
Add note about appropriate reports; improve organization
Aug 7, 2021
6446acd
Update hardware-related docs
Aug 7, 2021
3dbfa3e
Merge branch 'security-report'
Aug 7, 2021
c6cd68f
Fix typo; standardize orthography
Aug 7, 2021
0ff86df
Standardize orthography
Aug 7, 2021
37a9f46
Merge branch 'hardware'
Aug 7, 2021
0ca6239
Remove release number from URLs (#1187)
Aug 7, 2021
fe0b333
Standardize orthography
Aug 7, 2021
8768e77
Standardize orthography
Aug 7, 2021
d75a0dc
Genericize anchor text and shorten URL (#1187)
Aug 8, 2021
b77b277
Add FAQ entry about not fixing all upstream bugs
Aug 10, 2021
0e3d609
Add note about backports
Aug 10, 2021
c218274
Update new issue instructions to account for simplified template
Aug 11, 2021
c1bf45c
Update milestone names; standardize orthography
Aug 11, 2021
a3364ee
Remove specific Qubes version refs and warn against this mistake
Aug 13, 2021
504ff2f
Minor clarifications
Aug 13, 2021
81c1821
fix typo
deeplow Aug 15, 2021
370d33f
Merge branch 'deeplow-patch-26'
Aug 15, 2021
cf8fe61
Deprecate "Hardware testing" page
Sep 4, 2021
9437476
Rename file to match new contents
Sep 4, 2021
0257a3f
Update "Certified hardware"
Sep 6, 2021
c00bdec
add link to external documentation
SvenSemmler Sep 6, 2021
3da0cd8
Fix link URL and title; wrap text
Sep 6, 2021
5f00308
Merge branch 'SvenSemmler-patch-3'
Sep 6, 2021
2774c83
Update intro to explain basic versioning and terminology
Sep 7, 2021
dbb3c3c
Update "version scheme"
Sep 7, 2021
1263636
Add link to "bug priorities" section
Sep 7, 2021
2a70624
Update "version scheme"
Sep 7, 2021
7f881d8
Change "netvm" to "net qube"
Sep 8, 2021
9f19553
Note exception for templates
Sep 10, 2021
e8c1025
Fix link
Sep 13, 2021
6cfc10b
Update device-handling-security.md
3hhh Sep 13, 2021
fb45095
Merge branch '3hhh-patch-1'
Sep 13, 2021
5d6ba66
Changed security archive layout for bullseye
SvenSemmler Sep 15, 2021
41cdc59
Change mailing list posting policies due to excessive spam
Sep 24, 2021
8698847
Merge branch 'patch-1' of https://github.com/SvenSemmler/qubes-doc in…
Sep 26, 2021
90ac679
Improve languge, syntax, and formatting; add link; wrap text
Sep 26, 2021
76408a4
Merge branch 'SvenSemmler-patch-1'
Sep 26, 2021
2b0871f
Add Whonix 16 support; clarify that upstream EOL supersedes table
Oct 1, 2021
82026df
Merge branch 'qvm-template' of https://github.com/WillyPillow/qubes-doc
Oct 1, 2021
e06f890
Merge branch 'patch-24' of https://github.com/deeplow/qubes-doc into …
Oct 1, 2021
58aeccd
Merge branch 'deeplow-patch-24'
Oct 1, 2021
37bf829
fix md typo
deeplow Oct 4, 2021
d935d6a
Merge branch 'deeplow-patch-27'
Oct 4, 2021
2179868
Improve organization of upgrade guides
Oct 9, 2021
8160814
Merge branch 'upgrade-reorg'
Oct 9, 2021
e904cc0
Create initial 4.1 upgrade page
Oct 9, 2021
f5ca579
Fill in R4.0->R4.1 upgrade steps
marmarek Oct 10, 2021
64d3119
Add R4.1 release notes draft
marmarek Jun 10, 2019
cd0745c
Update Qubes OS 4.1 release notes
Sep 3, 2021
a87b25a
Add QubesOS/qubes-issues#6877 to release notes
Sep 6, 2021
e5167e0
Clarify "Grub in UEFI mode"
Sep 10, 2021
dfac1d2
Add link to "Upgrading to R4.1"
Oct 9, 2021
e605e79
Update link
Oct 9, 2021
c02f15d
Update R4.1 release notes
marmarek Oct 10, 2021
5126c58
Rename release notes file to match others
marmarek Oct 10, 2021
9610702
Add R4.1 release schedule
marmarek Oct 10, 2021
e785156
Add links; improve language
Oct 11, 2021
fcb2dd8
Merge branch 'pr-828'
Oct 11, 2021
5134fe4
Add and update links; wrap text
Oct 11, 2021
a3a711c
Merge branch 'upgrade-4.1'
Oct 11, 2021
f380742
Update supported 4.1 templates
Oct 12, 2021
0cca6ec
Explain "major version number"
Oct 20, 2021
7e1af09
Fixes QubesOS/qubes-issues#7050
Nov 11, 2021
3142719
Add F34 template support to 4.0
Nov 12, 2021
be09220
wrong package name, line 237
Ark-of-the-copepod Nov 13, 2021
878655c
Merge branch 'Ark-of-the-copepod-patch-1'
Nov 13, 2021
20ec130
Remove Whonix 15 support (EOL)
Nov 14, 2021
361534f
Review template use before trying to remove
unman Nov 16, 2021
9245111
State requirement for networking from minimal templates.
unman Nov 16, 2021
9ff09eb
Merge branch 'template'
Nov 17, 2021
613e3e6
Merge branch 'min-net'
Nov 17, 2021
7df6ec9
Trivial typo - remove extraneous bracket
mvermaes Nov 18, 2021
ec41056
Merge branch 'mvermaes-patch-1'
Nov 19, 2021
8317c1d
AMD typo
Nov 19, 2021
dfdf70e
Merge branch 'crd477-crd477-patch-1'
Nov 22, 2021
b4f109c
Fix link to open bug reports
runephilosof-abtion Nov 25, 2021
f457e27
Merge branch 'runephilosof-abtion-patch-1'
Nov 25, 2021
29ed6e6
(docs): update `project-security/verifying-signatures.md`
vladdoster Nov 28, 2021
3bee60e
Copyedit; wrap text
Nov 30, 2021
8e2a5ea
Merge branch 'vladdoster-patch-1'
Nov 30, 2021
c037656
Remove Fedora 33 from supported templates (EOL)
Nov 30, 2021
dce008b
Update U2F proxy doc when having non standard sys-usb qubes name
Nov 30, 2021
a1517c2
schedule: there will be 4.1.0-rc3
marmarek Nov 30, 2021
002cc2f
Merge branch 'fix_u2f_doc' of github.com:tt-why/qubes-doc into tt-why…
Dec 1, 2021
117f718
Merge branch 'tt-why-fix_u2f_doc'
Dec 1, 2021
3fc612d
Update qvm-prefs output to 4.0 format
unman Dec 5, 2021
0f1440c
Add Debian 11 support for Qubes 4.0
Dec 7, 2021
d24bffe
Merge branch '6911' of github.com:unman/qubes-doc into unman-6911
Dec 7, 2021
91c88ec
Merge branch 'unman-6911'
Dec 7, 2021
e724e60
Add fedora details to convert VM to Qube section
smoothie-on-the-rocks Dec 10, 2021
50488bf
Change inline commands to block for easy selection
smoothie-on-the-rocks Dec 10, 2021
6f7f578
Merge branch 'smoothie-on-the-rocks-patch-2'
Dec 11, 2021
dc57464
Update URLs
Dec 14, 2021
900656f
note possibility to add rpc services in app qube
deeplow Dec 14, 2021
b9c6de6
Merge branch 'patch-1' of github.com:smoothie-on-the-rocks/qubes-doc …
Dec 22, 2021
ee9057a
Merge branch 'smoothie-on-the-rocks-patch-1'
Dec 22, 2021
b221d40
Merge branch 'patch-28' of github.com:deeplow/qubes-doc into deeplow-…
Dec 22, 2021
e7e21d4
Merge branch 'deeplow-patch-28'
Dec 22, 2021
7e8ea7b
add documentation for openqa_investigator script
deeplow Jan 2, 2022
ba6d93a
Fix typo
Jan 3, 2022
8f4fced
Merge branch 'deeplow-openqa-update'
Jan 3, 2022
023db35
Fix git commit code signing command
siliconninja Jan 6, 2022
9f309c1
Update R4.1 release schedule
marmarek Jan 7, 2022
2f42561
merge remote origin
test90 Jan 8, 2022
4854d35
Merge branch 'pgp-instruction-improvements' of github.com:siliconninj…
Jan 8, 2022
946aa38
Merge branch 'siliconninja-pgp-instruction-improvements'
Jan 8, 2022
cb63538
Merge branch 'master' of https://github.com/QubesOS/qubes-doc
test90 Jan 18, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
include:
- project: 'QubesOS/qubes-continuous-integration'
file: '/gitlab-website.yml'

build:doc:
extends: .website
16 changes: 9 additions & 7 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
Contributing to `qubes-doc`
===========================
# Contributing to `qubes-doc`

Thank you for your interest in contributing to `qubes-doc`, the Qubes OS
Project's dedicated documentation repository! Please take a moment to read our
[Documentation Guidelines] before you begin writing. These guidelines are
important to maintaining high quality documentation, and following them will
increase the likelihood that your contribution will be accepted.
Project's dedicated documentation repository! Please see [how to edit the
documentation](https://www.qubes-os.org/doc/how-to-edit-the-documentation/) for
detailed contribution instructions.

[Documentation Guidelines]: https://www.qubes-os.org/doc/doc-guidelines/
In addition, please take a moment to read our [documentation style
guide](https://www.qubes-os.org/doc/documentation-style-guide/) before
contributing. These guidelines are important to maintaining high standards of
quality, and following them will increase the likelihood that your contribution
will be accepted.
20 changes: 7 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,11 @@
Qubes OS Documentation
======================
# Qubes OS Documentation

Canonical URL: https://www.qubes-os.org/doc/

All [Qubes OS Project] documentation pages are stored as plain text
files in this dedicated repository. By cloning and regularly pulling from
this repo, users can maintain their own up-to-date offline copy of all
Qubes documentation rather than relying solely on the Web.

For more information about the documentation, including how to contribute,
please see the [Documentation Guidelines].


[Qubes OS Project]: https://github.com/QubesOS
[documentation guidelines]: https://www.qubes-os.org/doc/doc-guidelines/
All [Qubes OS Project](https://github.com/QubesOS) documentation pages are
stored as plain text files in this dedicated repository. By cloning and
regularly pulling from this repo, users can maintain their own up-to-date
offline copy of all Qubes documentation rather than relying solely on the Web.

To contribute, please see [how to edit the
documentation](https://www.qubes-os.org/doc/how-to-edit-the-documentation/).
2 changes: 1 addition & 1 deletion _dev/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ BUILDDIR = _build

# User-friendly check for sphinx-build
ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from https://www.sphinx-doc.org/)
endif

# Internal variables.
Expand Down
Empty file removed _dev/_build/.gitignore
Empty file.
52 changes: 22 additions & 30 deletions developer/building/development-workflow.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,23 @@
---
lang: en
layout: doc
title: Development Workflow
permalink: /doc/development-workflow/
redirect_from:
- /en/doc/development-workflow/
- /doc/DevelopmentWorkflow/
- /wiki/DevelopmentWorkflow/
ref: 66
title: Development workflow
---

Development Workflow
====================

A workflow for developing Qubes OS+

First things first, setup [QubesBuilder](/doc/qubes-builder/). This guide
assumes you're using qubes-builder to build Qubes.

Repositories and committing Code
--------------------------------
# Repositories and committing Code

Qubes is split into a bunch of git repos. This are all contained in the
Qubes is split into a bunch of git repos. These are all contained in the
`qubes-src` directory under qubes-builder. Subdirectories there are separate
components, stored in separate git repositories.

Expand Down Expand Up @@ -117,7 +115,7 @@ cd ../..
vi series.conf
~~~

#### Building RPMS
#### Building RPMs

TODO: Is this step generic for all subsystems?

Expand All @@ -130,13 +128,13 @@ distinguish between different versions of the same package.
You might want to take a moment here to review (git diff, git status), commit
your changes locally.

To actually build RPMS, in qubes-builder:
To actually build RPMs, in qubes-builder:

~~~
make linux-kernel
~~~

RPMS will appear in qubes-src/linux-kernel/pkgs/fc20/x86\_64:
RPMs will appear in qubes-src/linux-kernel/pkgs/fc20/x86\_64:

~~~
-rw-rw-r-- 1 user user 42996126 Nov 17 04:08 kernel-3.4.18-1debug20121116c.pvops.qubes.x86_64.rpm
Expand All @@ -149,25 +147,24 @@ RPMS will appear in qubes-src/linux-kernel/pkgs/fc20/x86\_64:

### Useful [QubesBuilder](/doc/qubes-builder/) commands

1. `make check` - will check if all the code was committed into repository and
1. `make check` - will check if all the code was committed into repository and
if all repository are tagged with signed tag.
2. `make show-vtags` - show version of each component (based on git tags) -
2. `make show-vtags` - show version of each component (based on git tags) -
mostly useful just before building ISO. **Note:** this will not show version
for components containing changes since last version tag
3. `make push` - push change from **all** repositories to git server. You must
for components containing changes since last version tag.
3. `make push` - push change from **all** repositories to git server. You must
set proper remotes (see above) for all repositories first.
4. `make prepare-merge` - fetch changes from remote repositories (can be
4. `make prepare-merge` - fetch changes from remote repositories (can be
specified on commandline via GIT\_SUBDIR or GIT\_REMOTE vars), (optionally)
verify tags and show the changes. This do not merge the changes - there are
left for review as FETCH\_HEAD ref. You can merge them using `git merge
FETCH_HEAD` (in each repo directory). Or `make do-merge` to merge all of them.

Copying Code to dom0
--------------------
## Copying Code to dom0

When developing it is convenient to be able to rapidly test changes. Assuming
you're developing Qubes on Qubes, you should be working in a special VM for
Qubes and occasionally you will want to transfer code or rpms back to dom0 for
Qubes and occasionally you will want to transfer code or RPMs back to dom0 for
testing.

Here are some handy scripts Marek has shared to facilitate this.
Expand Down Expand Up @@ -309,7 +306,6 @@ to `testbuilder` VM. Otherwise it creates remote pointing at github account of
the same name. In any case it points at repository matching current directory
name.


## Sending packages to different VM

Other useful script(s) can be used to setup local package repository hosted in
Expand All @@ -325,7 +321,7 @@ current and current-testing).

### RPM packages - yum repo

In source VM, grab [linux-yum] repository (below is assumed you've made it in
In source VM, grab [linux-yum](https://github.com/QubesOS/qubes-linux-yum) repository (below is assumed you've made it in
`~/repo-yum-upload` directory) and replace `update_repo.sh` script with:

~~~
Expand All @@ -341,7 +337,7 @@ find -type f -name '*.rpm' -delete
qrexec-client-vm $VMNAME local.UpdateYum
~~~

In target VM, setup actual yum repository (also based on [linux-yum], this time
In target VM, setup actual yum repository (also based on [linux-yum](https://github.com/QubesOS/qubes-linux-yum), this time
without modifications). You will also need to setup some gpg key for signing
packages (it is possible to force yum to install unsigned packages, but it
isn't possible for `qubes-dom0-update` tool). Fill `~/.rpmmacros` with
Expand Down Expand Up @@ -389,7 +385,7 @@ Of course you will also need to setup qrexec policy in dom0
If you want to access the repository from network, you need to setup HTTP
server serving it, and configure the system to let other machines actually
reach this HTTP server. You can use for example using [port
forwarding][port-forwarding] or setting up Tor hidden service. Configuration
forwarding](/doc/firewall/#port-forwarding-to-a-qube-from-the-outside-world) or setting up Tor hidden service. Configuration
details of those services are outside of the scope of this page.

Usage: setup `builder.conf` in source VM to use your dummy-uploader repository:
Expand Down Expand Up @@ -421,10 +417,10 @@ Remember to also import gpg public key using `rpm --import`.

Steps are mostly the same as in the case of yum repo. The only details that differ:

- use [linux-deb] instead of [linux-yum] as a base - both in source and target VM
- use different `update_repo.sh` script in source VM (below)
- use `local.UpdateApt` qrexec service in target VM (code below)
- in target VM additionally place `update-local-repo.sh` script in repository dir (code below)
- use [linux-deb](https://github.com/QubesOS/qubes-linux-deb) instead of [linux-yum](https://github.com/QubesOS/qubes-linux-yum) as a base - both in source and target VM
- use different `update_repo.sh` script in source VM (below)
- use `local.UpdateApt` qrexec service in target VM (code below)
- in target VM additionally place `update-local-repo.sh` script in repository dir (code below)

`update_repo.sh` script:

Expand Down Expand Up @@ -540,7 +536,3 @@ Usage: add this line to `/etc/apt/sources.list` on test machine (adjust host and
~~~
deb http://local-test.lan/linux-deb/r3.1 jessie-unstable main
~~~

[port-forwarding]: /doc/firewall/#port-forwarding-to-a-qube-from-the-outside-world
[linux-yum]: https://github.com/QubesOS/qubes-linux-yum
[linux-deb]: https://github.com/QubesOS/qubes-linux-deb
43 changes: 21 additions & 22 deletions developer/building/qubes-builder-details.md
Original file line number Diff line number Diff line change
@@ -1,45 +1,44 @@
---
lang: en
layout: doc
title: Qubes Builder Details
permalink: /doc/qubes-builder-details/
redirect_from:
- /en/doc/qubes-builder-details/
- /doc/QubesBuilderDetails/
- /wiki/QubesBuilderDetails/
ref: 65
title: Qubes builder details
---

[QubesBuilder](/doc/qubes-builder/) "API"
========================================

Components Makefile.builder file
--------------------------------

[QubesBuilder](/doc/qubes-builder/) expects that each component have *Makefile.builder* file in its root directory. This file specifies what should be done to build the package. As name suggests, this is normal makefile, which is included by builder as its configuration. Its main purpose is to set some variables. Generally all available variables/settings are described as comments at the beginning of Makefile.\* in [QubesBuilder](/doc/qubes-builder/).

Variables for Linux build:

- `RPM_SPEC_FILES` List (space separated) of spec files for RPM package build. Path should be relative to component root directory. [QubesBuilder](/doc/qubes-builder/) will install all BuildRequires (in chroot environment) before the build. In most Qubes components all spec files are kept in *rpm\_spec* directory. This is mainly used for Fedora packages build.
- `ARCH_BUILD_DIRS` List (space separated) of directories with PKGBUILD files for Archlinux package build. Similar to RPM build, [QubesBuilder](/doc/qubes-builder/) will install all makedepends, then build the package.
- `RPM_SPEC_FILES` List (space separated) of spec files for RPM package build. Path should be relative to component root directory. [QubesBuilder](/doc/qubes-builder/) will install all BuildRequires (in chroot environment) before the build. In most Qubes components all spec files are kept in *rpm\_spec* directory. This is mainly used for Fedora packages build.
- `ARCH_BUILD_DIRS` List (space separated) of directories with PKGBUILD files for Archlinux package build. Similar to RPM build, [QubesBuilder](/doc/qubes-builder/) will install all makedepends, then build the package.

Most components uses *archlinux* directory for this purpose, so its good to keep this style.

Variables for Windows build:

- `WIN_COMPILER` Choose which compiler should be used for this component, thus which build scripts. Currently two options available:
- `WDK` - Windows Driver Kit (default). Command used to build: *build -cZg*.
- `mingw` - MinGW (Windows gcc port). Command used to build: *make all*
- `WIN_SOURCE_SUBDIRS` List of directories in which above command should be run. In most cases it will be only one entry: current directory (*.*).
- `WIN_PREBUILD_CMD` Command to run before build, mostly useful for WDK build (in mingw case, you can use makefile for this purpose). Can be used to set some variables, preprocess some files etc.
- `WIN_SIGN_CMD` Command used to sign resulting binaries. Note that default value is *sign.bat*. If you don't want to sign binaries, specify some placeholder here (eg. *true*). Check existing components (eg. vmm-xen-windows-pvdrivers) for example scripts. This command will be run with certain environment variables:
- `CERT_FILENAME` Path to key file (pfx format)
- `CERT_PASSWORD` Key password
- `CERT_PUBLIC_FILENAME` Certificate path in the case of self-signed cert
- `CERT_CROSS_CERT_FILENAME` Certificate path in the case of correct autheticode cert
- `SIGNTOOL` Path to signtool
- `WIN_PACKAGE_CMD` Command used to produce installation package (msi or msm). Default value is *wix.bat*, similar to above - use *true* if you don't want this command.
- `WIN_OUTPUT_HEADERS` Directory (relative to `WIN_SOURCE_SUBDIRS` element) with public headers of the package - for use in other components.
- `WIN_OUTPUT_LIBS` Directory (relative to `WIN_SOURCE_SUBDIRS` element) with libraries (both DLL and implib) of the package - for use in other components. Note that [QubesBuilder](/doc/qubes-builder/) will copy files specified as *\$(WIN\_OUTPUT\_LIBS)/\*/\** to match WDK directory layout (*\<specified directory\>/\<arch directory\>/\<actual libraries\>*), so you in mingw build you need to place libraries in some additional subdirectory.
- `WIN_BUILD_DEPS` List of components required to build this one. [QubesBuilder](/doc/qubes-builder/) will copy files specified with `WIN_OUTPUT_HEADERS` and `WIN_OUTPUT_LIBS` of those components to some directory and provide its path with `QUBES_INCLUDES` and `QUBES_LIBS` variables. Use those variables in your build scripts (*sources* or *Makefile* - depending on selected compiler). You can assume that the variables are always set and directories always exists, even if empty.
- `WIN_COMPILER` Choose which compiler should be used for this component, thus which build scripts. Currently two options available:
- `WDK` - Windows Driver Kit (default). Command used to build: *build -cZg*.
- `mingw` - MinGW (Windows gcc port). Command used to build: *make all*
- `WIN_SOURCE_SUBDIRS` List of directories in which above command should be run. In most cases it will be only one entry: current directory (*.*).
- `WIN_PREBUILD_CMD` Command to run before build, mostly useful for WDK build (in mingw case, you can use makefile for this purpose). Can be used to set some variables, preprocess some files etc.
- `WIN_SIGN_CMD` Command used to sign resulting binaries. Note that default value is *sign.bat*. If you don't want to sign binaries, specify some placeholder here (eg. *true*). Check existing components (eg. vmm-xen-windows-pvdrivers) for example scripts. This command will be run with certain environment variables:
- `CERT_FILENAME` Path to key file (pfx format)
- `CERT_PASSWORD` Key password
- `CERT_PUBLIC_FILENAME` Certificate path in the case of self-signed cert
- `CERT_CROSS_CERT_FILENAME` Certificate path in the case of correct autheticode cert
- `SIGNTOOL` Path to signtool
- `WIN_PACKAGE_CMD` Command used to produce installation package (msi or msm). Default value is *wix.bat*, similar to above - use *true* if you don't want this command.
- `WIN_OUTPUT_HEADERS` Directory (relative to `WIN_SOURCE_SUBDIRS` element) with public headers of the package - for use in other components.
- `WIN_OUTPUT_LIBS` Directory (relative to `WIN_SOURCE_SUBDIRS` element) with libraries (both DLL and implib) of the package - for use in other components. Note that [QubesBuilder](/doc/qubes-builder/) will copy files specified as *\$(WIN\_OUTPUT\_LIBS)/\*/\** to match WDK directory layout (*\<specified directory\>/\<arch directory\>/\<actual libraries\>*), so you in mingw build you need to place libraries in some additional subdirectory.
- `WIN_BUILD_DEPS` List of components required to build this one. [QubesBuilder](/doc/qubes-builder/) will copy files specified with `WIN_OUTPUT_HEADERS` and `WIN_OUTPUT_LIBS` of those components to some directory and provide its path with `QUBES_INCLUDES` and `QUBES_LIBS` variables. Use those variables in your build scripts (*sources* or *Makefile* - depending on selected compiler). You can assume that the variables are always set and directories always exists, even if empty.

builder.conf settings
---------------------
Expand All @@ -51,4 +50,4 @@ Most settings are documented in *builder.conf.default* file, which can be used a
Notes
-----

* For a list of custom TemplateVMs available in QubesBuilder look at [Supported Versions page](https://www.qubes-os.org/doc/supported-versions/).
- For a list of custom TemplateVMs available in QubesBuilder look at [Supported Versions page](/doc/supported-releases/).
Loading