Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
143 commits
Select commit Hold shift + click to select a range
7706060
clarify Qubes source code license
adrelanos May 23, 2021
deb33cd
Copyedit text
andrewdavidwong May 24, 2021
0a6f371
update 7-year-old test-bench machine setup
deeplow Jun 2, 2021
185f33e
implemented requested changes
deeplow Jun 2, 2021
036d89e
add troubleshooting message
deeplow Jun 4, 2021
161a03f
add notes about installing software with dom0 net
deeplow Jun 4, 2021
4239ad7
add "ssh-copy-id" to "Passwordless SSH Login"
deeplow Jun 8, 2021
2ae7a9c
Revamp "How to Get Started" page
Jun 17, 2021
d2614cb
Fix links
Jun 17, 2021
f0ce0cc
remove "install windows or mac"
deeplow Jun 17, 2021
d33690d
clarify "dnf --setopt" should be used
deeplow Jun 17, 2021
7d3fd4f
Create general Privacy Policy; add mirror note
Jun 17, 2021
19c5334
Fix typo
Jun 17, 2021
dc4fee5
Merge branch 'patch-19' of https://github.com/deeplow/qubes-doc into …
Jun 17, 2021
74eb0d9
Restore language indicating examples
andrewdavidwong Jun 17, 2021
7f54374
Merge branch 'patch-19' of https://github.com/deeplow/qubes-doc into …
Jun 17, 2021
b657253
Merge branch 'deeplow-patch-19'
Jun 17, 2021
e294b0e
Where to install software
SvenSemmler Jun 17, 2021
07bf788
Improve language and accuracy
andrewdavidwong Jun 18, 2021
a31ee53
Minor improvements
Jun 18, 2021
be1d964
Merge branch 'patch-1' of https://github.com/SvenSemmler/qubes-doc in…
Jun 18, 2021
6e0367a
Merge branch 'SvenSemmler-patch-1'
Jun 18, 2021
7652e7e
Revamp glossary
Jun 18, 2021
873da01
Shorten "standalone qube" to "standalone"
Jun 18, 2021
e9fe17f
Fix link text capitalization
Jun 18, 2021
4f3c513
Update template doc
Jun 18, 2021
1320301
Update "How to Install Software"
Jun 18, 2021
719836c
Replace "template-based qube" with "app qube"
Jun 18, 2021
9908329
qubes-dom0-update has no install argument
deeplow Jun 18, 2021
aea5953
Mass replace "AppVM" and "TemplateBasedVM" with "app qube"
Jun 18, 2021
c07ee61
Mass replace "DisposableVM" with "disposable"
Jun 18, 2021
63498a6
Mass replace "TemplateVM" with "template"
Jun 18, 2021
2ae0ce9
Mass replace "StandaloneVM" with "standalone"
Jun 18, 2021
88a4e0a
Fix links
Jun 18, 2021
50270f4
Fix links
Jun 18, 2021
ce03117
Fix links and update terms
Jun 18, 2021
e26e40c
Replace "TemplateVM" with "template"; fix links
Jun 18, 2021
ba37640
Merge branch 'mass-replace-terms'
Jun 18, 2021
e5a21f7
Update attachment paths
Jun 18, 2021
b1d6139
Restore hard wrapping at 80 characters
Jun 18, 2021
7d7ca0c
Fix image example; wrap text
Jun 18, 2021
863f0ee
Revert "Fix image example; wrap text"
Jun 18, 2021
60bd80a
Revert "Update attachment paths"
Jun 18, 2021
e451f92
Update attachment paths
Jun 18, 2021
07c130d
Wrap text and miscellaneous cleanup
Jun 18, 2021
d3e74d5
Update retention period
Jun 18, 2021
2c7982d
Restore capitalization
Jun 18, 2021
f50d543
Fix errors
Jun 18, 2021
3d1d8bf
Update links
Jun 18, 2021
c178da9
Update "How to Install Software"
Jun 18, 2021
679c54e
Update privacy.md
Jun 18, 2021
325abc8
Fix typo
Jun 18, 2021
b3c61ed
Clarify definitions
Jun 18, 2021
ba232b6
Improve organization and wording; fix typos
Jun 18, 2021
0a53418
Update glossary
Jun 19, 2021
7c0a29a
Add entry for "netvm"
Jun 19, 2021
b9b49c4
Mention why one would use minimal templates
deeplow Jun 19, 2021
52ab776
Merge branch 'deeplow-patch-20'
Jun 19, 2021
7e3bc95
Update "Minimal Templates"
Jun 19, 2021
ea0a14f
Update OS names
Jun 19, 2021
a251135
Mark pages as advanced
Jun 19, 2021
04d3ead
Fix "Notes" heading; update heading syntax
Jun 20, 2021
ffc8d71
Update heading syntax; wrap text
Jun 20, 2021
71a3f2b
Update heading syntax; wrap text
Jun 20, 2021
2dbc886
Use doc layout instead of sidebar layout
Jun 20, 2021
cc839fc
Move "Version Scheme" to developer docs
Jun 20, 2021
3676c18
Move experts.md to main website repo
Jun 20, 2021
f490482
Update "How to Install Software in Dom0"
Jun 20, 2021
6a88601
Update "Testing New Releases and Updates"
Jun 20, 2021
b88fe1d
Rename *.html files to *.md
Jun 20, 2021
b8ffe76
Update and fix links
Jun 20, 2021
3cca147
Update how-to-get-started.md
ninavizz Jun 20, 2021
1e469ea
Fix redirect to 404 from /doc/disposablevm
noskb Jun 21, 2021
61c3868
Add trailing slash
andrewdavidwong Jun 21, 2021
8509bbb
Merge branch 'noskb-patch-1'
Jun 21, 2021
0b95303
Merge branch 'patch-1' of https://github.com/ninavizz/qubes-doc into …
Jun 21, 2021
09ba96b
Rename "awesome" to "AwesomeWM"; update image, links
Jun 21, 2021
dfc5918
Merge branch 'ninavizz-patch-1'
Jun 21, 2021
dffa350
Update "Templates"
Jun 21, 2021
92016a6
Update "How to Install Software"
Jun 21, 2021
87948a3
Update URL to match title
Jun 21, 2021
bc138e0
Update links
Jun 21, 2021
3b0c0be
Steer newbies toward easy upgrade method even more
Jun 21, 2021
7c83d84
Fix link; add section on installing software
Jun 21, 2021
435f2f6
Update "How to Update"
Jun 21, 2021
dec4c71
Update button to match page title
Jun 21, 2021
d31155a
Add entry for "management qube"
Jun 21, 2021
7d30b68
Update title for accuracy
Jun 21, 2021
58200e5
Add glossary links; improve wording
Jun 21, 2021
60a894b
Revamp "Reporting Bugs and Other Issues"
Jun 21, 2021
f860726
Rename file to match new title
Jun 21, 2021
527a2eb
Update links
Jun 21, 2021
dd24aeb
Merge branch 'issue-tracking'
Jun 21, 2021
0c3c2aa
Update "Issue Tracking"
Jun 21, 2021
0701f19
Update "Help, Support, Mailing Lists, and Forum"
Jun 21, 2021
1ecad8c
Update text
Jun 21, 2021
b02f6ad
Fix typo
Jun 21, 2021
bf7c445
Update mailing list info
Jun 21, 2021
74a547a
Update "How to Use Disposables"
Jun 21, 2021
1e7a76f
Fix capitalization
Jun 21, 2021
6547239
Update how-to-get-started.md
ninavizz Jun 21, 2021
a015f60
Fix links
Jun 22, 2021
308fadf
Improve language and links
Jun 22, 2021
673629c
Update doc index link
Jun 22, 2021
c161fdf
Reorganize project security pages
Jun 22, 2021
f86d6c5
Move "Research" page to main repo
Jun 22, 2021
09a5ec7
Update "Video Tours"
Jun 22, 2021
ef620f9
Refactor Admin API page
Jun 22, 2021
f946157
Rename layout "default" to "site"
Jun 22, 2021
f97eaa7
Move HCL listing page to main repo
Jun 22, 2021
70d7ff8
Update layout
Jun 22, 2021
c8752a2
Add "Coding conventions" section
Jun 22, 2021
0e3edb1
Trigger rebuild
Jun 22, 2021
1a4365f
Clarify intention and context of coding conventions
Jun 22, 2021
c239777
Merge branch 'patch-1' of https://github.com/ninavizz/qubes-doc into …
Jun 22, 2021
6fa8777
Clarify and simplify language
Jun 22, 2021
36f7172
Merge branch 'ninavizz-patch-1'
Jun 22, 2021
d3c9979
Update terminology, links, heading syntax; wrap text
Jun 22, 2021
7b1c4c6
Fix typos; tweak wording
Jun 22, 2021
6cc2f99
Update QSB page link
Jun 22, 2021
d145143
Update Qubes Canary page link
Jun 22, 2021
3a77787
Update, add, and reorder links
Jun 22, 2021
3b4c9bf
Make replaceable text like <THIS> instead of <this>
deeplow Jun 23, 2021
d40e347
Merge branch 'deeplow-patch-21'
Jun 23, 2021
3b700bf
Update "Standalones and HVMs"
Jun 23, 2021
069c805
troubleshooting: add qubes.skip_autostart
fepitre Jun 23, 2021
bccc64d
skip-autostart: precise supported releases and modes
fepitre Jun 23, 2021
ed6275b
Revamp "Video Tours"
Jun 23, 2021
06351f0
Remove unnecessary "the"
Jun 24, 2021
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
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
11 changes: 5 additions & 6 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
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](https://www.qubes-os.org/doc/doc-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.

[Documentation Guidelines](https://www.qubes-os.org/doc/doc-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.
12 changes: 5 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
Qubes OS Documentation
======================
# Qubes OS Documentation

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

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.
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.

For more information about the documentation, including how to contribute,
please see the [Documentation Guidelines](https://www.qubes-os.org/doc/doc-guidelines/).

2 changes: 0 additions & 2 deletions developer/building/development-workflow.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ ref: 66
title: Development Workflow
---


A workflow for developing Qubes OS+

First things first, setup [QubesBuilder](/doc/qubes-builder/). This guide
Expand Down Expand Up @@ -537,4 +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
~~~

1 change: 0 additions & 1 deletion developer/building/qubes-builder-details.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ ref: 65
title: Qubes Builder Details
---


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

Expand Down
1 change: 0 additions & 1 deletion developer/building/qubes-iso-building.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ ref: 63
title: Qubes ISO Building
---


Build Environment
-----------------

Expand Down
1 change: 1 addition & 0 deletions developer/building/qubes-template-configs.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,6 @@ lang: en
layout: doc
permalink: /doc/qubes-template-configs/
redirect_to: https://github.com/QubesOS/qubes-template-configs
ref: 248
title: Qubes Template Configs
---
2 changes: 0 additions & 2 deletions developer/code/code-signing.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ ref: 51
title: Code Signing
---


All contributions to the Qubes OS [source code](/doc/source-code/) must be cryptographically signed by the author's PGP key.

## Generating a Key
Expand Down Expand Up @@ -202,4 +201,3 @@ Please upload it.
If you're submitting a patch by emailing the [developer mailing list](/support/#qubes-devel), simply sign your email with your PGP key.
One good way to do this is with a program like [Enigmail](https://www.enigmail.net/).
Enigmail is a security addon for the Mozilla Thunderbird email client that allows you to easily digitally encrypt and sign your emails.

1 change: 0 additions & 1 deletion developer/code/coding-style.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ ref: 53
title: Coding Style
---


Rationale
---------

Expand Down
11 changes: 9 additions & 2 deletions developer/code/license.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,14 @@ ref: 52
title: Software License
---

Qubes OS is a compilation of software packages, each under its own license. The
compilation is made available under the GNU General Public License version 2
(GPLv2).

Qubes is a compilation of software packages, each under its own license. The compilation is made available under the GNU General Public License version 2.
The source code of Qubes OS is contained in repositories under the
[@QubesOS](https://github.com/QubesOS) account on GitHub. This source code is
made available under GPLv2, unless there is a `LICENSE` file in the root of the
containing repository that specifies a different license.

The full text of the GPL v2 license can be found [here](https://www.gnu.org/licenses/gpl-2.0.html).
The full text of the GPLv2 license can be found
[here](https://www.gnu.org/licenses/gpl-2.0.html).
2 changes: 0 additions & 2 deletions developer/code/source-code.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ ref: 54
title: Source Code
---


All the Qubes code is kept in Git repositories. We have divided the project into
several components, each of which has its own separate repository, for example:

Expand Down Expand Up @@ -81,4 +80,3 @@ method you choose, you must [sign your code](/doc/code-signing/) before it can b
name and email, so that *your* name will be used as a commit's author.
5. Send your patch to `qubes-devel`. Start the message subject with
`[PATCH]`.

4 changes: 1 addition & 3 deletions developer/debugging/automated-tests.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ ref: 45
title: Automated Tests
---


## Unit and Integration Tests

Starting with Qubes R3 we use [python unittest](https://docs.python.org/3/library/unittest.html) to perform automatic tests of Qubes OS.
Expand Down Expand Up @@ -114,7 +113,7 @@ vm_qrexec_gui/TC_20_DispVM_fedora-21/test_030_edit_file

Example test run:

![snapshot-tests2.png](/attachment/wiki/developers/snapshot-tests2.png)
![snapshot-tests2.png](/attachment/doc/snapshot-tests2.png)

Tests are also compatible with nose2 test runner, so you can use this instead:

Expand Down Expand Up @@ -260,4 +259,3 @@ In practice, however, either Xen or QEMU crashes when this is attempted.
Nonetheless, PV works well, which is sufficient for automated installation testing.

Thanks to an anonymous donor, our openQA system is hosted in a datacenter on hardware that meets these requirements.

2 changes: 0 additions & 2 deletions developer/debugging/mount-lvm-image.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ ref: 46
title: How to Mount LVM Images
---


You want to read your LVM image (e.g., there is a problem where you can't start any VMs except dom0).

1: make the image available for qubesdb.
Expand Down Expand Up @@ -53,4 +52,3 @@ From the GUI, or from the command line:
# References

Please consult this issue's [comment](https://github.com/QubesOS/qubes-issues/issues/4687#issuecomment-451626625).

3 changes: 1 addition & 2 deletions developer/debugging/profiling.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ ref: 48
title: Python Profiling
---


This is a python profiling primer.

For the purpose of this document, `qubes-dev` is name of the domain used for postprocessing profiling stats.
Expand Down Expand Up @@ -94,6 +93,6 @@ make REMOTE=example.com:public_html/qubes/profiling/ upload

This example is from `qubes-manager` (`qubesmanager/main.py`).

!["update\_table-20140424-170010.svg"](//attachment/wiki/Profiling/update_table-20140424-170010.svg)
!["update\_table-20140424-170010.svg"](//attachment/doc/update_table-20140424-170010.svg)

It is apparent that the problem is around `get_disk_usage`, which calls something via `subprocess.call`. It does this 15 times, probably once per VM.
1 change: 0 additions & 1 deletion developer/debugging/safe-remote-ttys.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ ref: 49
title: Safe Remote Dom0 Terminals
---


If you do not have working graphics in Dom0, then using a terminal can be quite annoying!
This was the case for the author while trying to debug PCI-passthrough of a machine's primary (only) GPU.

Expand Down
105 changes: 60 additions & 45 deletions developer/debugging/test-bench.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,62 +10,75 @@ ref: 44
title: How to Set Up a Test Bench
---


This guide shows how to set up simple test bench that automatically test your code you're about to push. It is written especially for `core3` branch of `core-admin.git` repo, but some ideas are universal.

We will set up a spare machine (bare metal, not a virtual) that will be hosting our experimental Dom0. We will communicate with it via Ethernet and SSH. This tutorial assumes you are familiar with [QubesBuilder](/doc/qubes-builder/) and you have it set up and running flawlessly.

## Setting up the machine
> **Notice:**
> This setup intentionally weakens some security properties in the testing system. So make sure you understand the risks and use exclusively for testing.

First, do a clean install from ISO you built or grabbed elsewhere.
## Setting up the Machine

You have to fix network, because it is intentionally broken. This script should reenable your network card without depending on anything else.
### Install ISO
First, do a clean install from the `.iso` [you built](/doc/qubes-iso-building/) or grabbed elsewhere (for example [here](https://qubes-os.discourse.group/t/qubesos-4-1-alpha-signed-weekly-builds/3601))

```bash
#!/bin/sh
### Enabling Network Access in Dom0

# adjust this for your NIC (run lspci)
BDF=0000:02:00.0

prog=$(basename $0)

pciunbind() {
local path
path=/sys/bus/pci/devices/${1}/driver/unbind
if ! [ -w ${path} ]; then
echo "${prog}: Device ${1} not bound"
return 1
fi
echo -n ${1} >${path}
}

pcibind() {
local path
path=/sys/bus/pci/drivers/${2}/bind
if ! [ -w ${path} ]; then
echo "${prog}: Driver ${2} not found"
return 1
fi
echo ${1} >${path}
}

pciunbind ${BDF}
pcibind ${BDF} e1000e

dhclient
```
Internet access is intentionally disabled by default in dom0. But to ease the deployment process we will give it access. The following steps should be done in `dom0`.

TODO: describe how to run this at every startup
> **Note:** the following assume you have only one network card. If you have two, pick one and leave the other attached to `sys-net`.

Now configure your DHCP server so your testbench gets static IP and connect your machine to your local network. You should ensure that your testbench can reach the Internet.
1. Remove the network card (PCI device) from `sys-net`
2. Restart your computer (for the removal to take effect)
3. The following script should enable your network card in dom0. *Be sure to adjust the script's variables to suit your needs.* You'll need to run this at every startup (TODO: describe how to run this at every startup).

Install `openssh-server` on your testbench:
```bash
#!/bin/sh

~~~
yum install openssh-server
~~~
# adjust this for your NIC (run lspci)
BDF=0000:02:00.0

# adjust this for your network driver
DRIVER=e1000e

Ensure that sudo works without password from your user account (it should by default).
prog=$(basename $0)

pciunbind() {
local path
path=/sys/bus/pci/devices/${1}/driver/unbind
if ! [ -w ${path} ]; then
echo "${prog}: Device ${1} not bound"
return 1
fi
echo -n ${1} >${path}
}

pcibind() {
local path
path=/sys/bus/pci/drivers/${2}/bind
if ! [ -w ${path} ]; then
echo "${prog}: Driver ${2} not found"
return 1
fi
echo ${1} >${path}
}

pciunbind ${BDF}
pcibind ${BDF} ${DRIVER}

sleep 1
dhclient
```

4. Configure your DHCP server so your testbench gets static IP and connect your machine to your local network. You should ensure that your testbench can reach the Internet.

5. Install `openssh-server` on your testbench.

~~~
sudo dnf --setopt=reposdir=/etc/yum.repos.d install openssh-server
~~~

> **Note:** If you want to install additional software in dom0 and your only network card was assigned to dom0, then _instead_ of the usual `sudo qubes-dom0-update <PACKAGE>` now you run `sudo dnf --setopt=reposdir=/etc/yum.repos.d install <PACKAGE>`.

## Development VM

Expand All @@ -87,7 +100,9 @@ Host testbench
HostName 192.168.123.45
~~~

Then connect to your testbench and paste newly generated `id_ecdsa.pub` to `.ssh/authorized_keys` on testbench so you can log in without entering password every time.
#### Passwordless SSH Login

To log to your testbench without entering password every time, copy your newly generated public key (`id_ecdsa.pub`) to `~/.ssh/authorized_keys` on your testbench. You can do this easily by running this command on `qubes-dev`: `ssh-copy-id -i ~/.ssh/id_ecdsa.pub user@192.168.123.45` (substituting with the actual username address of your testbench).

### Scripting

Expand Down Expand Up @@ -116,7 +131,7 @@ fi
set -e

ssh testbench mkdir -p "${TMPDIR}"
scp "${@}" testbench:"${TMPDIR}"
scp "${@}" testbench:"${TMPDIR}" || echo "check if you have 'scp' installed on your testbench"

while [ $# -gt 0 ]; do
ssh testbench sudo rpm -i --replacepkgs --replacefiles "${TMPDIR}/$(basename ${1})"
Expand Down
1 change: 0 additions & 1 deletion developer/debugging/vm-interface.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ ref: 47
title: VM Configuration Interface
---


Qubes VM have some settings set by dom0 based on VM settings. There are multiple configuration channels, which includes:

- QubesDB
Expand Down
1 change: 0 additions & 1 deletion developer/debugging/windows-debugging.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ ref: 50
title: Windows Debugging
---


Debugging Windows code can be tricky in a virtualized environment. The guide below assumes Xen hypervisor and Windows 7 VMs.

User-mode debugging is usually straightforward if it can be done on one machine. Just duplicate your normal debugging environment in the VM.
Expand Down
Loading