Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Preparation for rst conversion #1418

Open
wants to merge 56 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
be4bbda
add newline for better rst conversion
maiska Jun 1, 2024
d04ee19
add newlines for better rst conversion
maiska Jun 1, 2024
0f1268e
Remove space for better rst conversion
maiska Jun 1, 2024
20972f2
add newline for better rst conversion
maiska Jun 1, 2024
6cf2fd5
add new line for better rst conv
maiska Jun 1, 2024
3ef2cd7
new lines rst conv
maiska Jun 1, 2024
3dcfa93
new line rst conv
maiska Jun 1, 2024
6b2ad28
newline rst conv
maiska Jun 1, 2024
5050b8d
better comv for rst prep
maiska Jun 8, 2024
ee6a768
better conv for rst
maiska Jun 12, 2024
607d525
better conv 4 rst
maiska Jun 12, 2024
c78d562
better formatting for rst conversion
maiska Jul 2, 2024
2346dac
formatting for better rst conversion
maiska Jul 2, 2024
326adab
better formatting for rst conv
maiska Jul 2, 2024
a1e5c64
better conv for rst
maiska Jul 6, 2024
90ed11a
better conv for rst
maiska Jul 6, 2024
93f851d
for better conv to rst
maiska Jul 6, 2024
32c32e6
preparation rst conversion
maiska Jul 28, 2024
0a94a1f
preparation rst conversion
maiska Jul 28, 2024
38cfff0
preparation rst conversion
maiska Jul 28, 2024
b7c6ff3
preparation rst conversion
maiska Jul 28, 2024
8fd6045
preparation rst ocnversion
maiska Jul 28, 2024
da97d63
preparation rst ocnversion
maiska Jul 28, 2024
7c2b1a4
preparation rst ocnversion
maiska Jul 28, 2024
ae14469
preparation rst ocnversion
maiska Jul 28, 2024
a60dc3a
prepare conversion to rst
maiska Jul 28, 2024
5941ae9
Merge branch 'QubesOS:main' into main
maiska Jul 28, 2024
230c80f
Merge branch 'QubesOS:main' into main
maiska Aug 9, 2024
f9c3715
preparation rst conversion
maiska Aug 10, 2024
3e93bd5
preparation conversion rst
maiska Aug 10, 2024
5926d88
preparation rst conversion
maiska Aug 11, 2024
b98221a
preparations rst conversion
maiska Aug 11, 2024
abbe9b1
preparation rst conversion
maiska Aug 11, 2024
d8eea9f
rst preparation conversion
maiska Aug 11, 2024
5c4c483
preparation rst conversion
maiska Aug 11, 2024
bdda0ae
preparation rst conversion
maiska Aug 11, 2024
d7d0308
preparation rst conversion
maiska Aug 11, 2024
df88aca
preparation rst conversion
maiska Aug 12, 2024
bdc020a
new line
maiska Sep 3, 2024
6c32c9d
preparation for rst conversion
maiska Sep 12, 2024
3006e84
preparation for rst conversion
maiska Sep 12, 2024
bfbad2b
removed a TODO comment for better rst conversion
maiska Sep 20, 2024
1ffc54d
fixed list for better rst conversion
maiska Sep 20, 2024
b330828
Reformat for better conversion to RST
tokideveloper Sep 21, 2024
8003064
fixed identation in lists, created sublists of lists, minor formattin…
maiska Sep 22, 2024
9b2e206
merge main
maiska Sep 22, 2024
c2a8a91
Merge pull request #1 from maiska/toki-newlines
maiska Sep 22, 2024
d4edd48
Merge branch 'QubesOS:main' into main
maiska Sep 22, 2024
0d9309e
rst conversion omitting extra space
maiska Sep 27, 2024
da85dd6
from bold to italic in title for better rst conversion
maiska Sep 27, 2024
89f81ec
added sublists for better rst conversion formatting
maiska Oct 4, 2024
4127448
Merge branch 'QubesOS:main' into main
maiska Oct 17, 2024
6b75c50
Merge branch 'QubesOS:main' into main
maiska Dec 25, 2024
c440190
Merge branch 'QubesOS:main' into toki-newlines
maiska Dec 25, 2024
00b72eb
Merge branch 'main' into toki-newlines
maiska Dec 27, 2024
ed16d12
Merge pull request #2 from maiska/toki-newlines
maiska Dec 27, 2024
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
2 changes: 2 additions & 0 deletions developer/code/code-signing.md
Original file line number Diff line number Diff line change
Expand Up @@ -144,9 +144,11 @@ Although GitHub adds a little green `Verified` button next to the commit, the [s

1. Is the commit signed?
If the commit is not signed, you can see the message

> policy/qubesos/code-signing — No signature found
2. If the commit is signed, the key is downloaded from a GPG key server.
If you can see the following error message, please check if you have uploaded the key to a key server.

> policy/qubesos/code-signing — Unable to verify (no valid key found)

### No Signature Found
Expand Down
1 change: 1 addition & 0 deletions developer/code/source-code.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ method you choose, you must [sign your code](/doc/code-signing/) before it can b

* **Preferred**: Use GitHub's [fork & pull requests](https://guides.github.com/activities/forking/).


Opening a pull request on GitHub greatly eases the code review and tracking
process. In addition, especially for bigger changes, it's a good idea to send
a message to the [qubes-devel mailing list](/support/#qubes-devel) in order to notify people who
Expand Down
2 changes: 2 additions & 0 deletions developer/debugging/automated-tests.md
Original file line number Diff line number Diff line change
Expand Up @@ -267,11 +267,13 @@ It feeds off of the openQA test data to make graph plots. Here is an example:
![openqa-investigator-splitgpg-example.png](/attachment/doc/openqa-investigator-splitgpg-example.png)

Some outputs:

- plot by tests
- plot by errors
- markdown

Some filters:

- filter by error
- filter by test name

Expand Down
102 changes: 5 additions & 97 deletions developer/general/gsoc.md
Original file line number Diff line number Diff line change
Expand Up @@ -174,45 +174,6 @@ If applicable, links to more information or discussions

**Mentor**: [Frédéric Pierret](/team/)

<!--

REMOVED as of February 2022: work is being done on this

### Wayland support in GUI agent and/or GUI daemon

**Project**: Wayland support in GUI agent and/or GUI daemon

**Brief explanation**: Currently both GUI agent (VM side of the GUI virtualization) and GUI daemon (dom0 side of GUI virtualization) support X11 protocol only. It may be useful to add support for Wayland there. Note that those are in fact two independent projects:

1. GUI agent - make it work as Wayland compositor, instead of extracting window's composition buffers using custom X11 driver
2. GUI daemon - act as Wayland application, showing windows retrieved from VMs, keeping zero-copy display path (window content is directly mapped from application running in VM, not copied)

**Expected results**:

Choose either of GUI agent, GUI daemon. Both are of similar complexity and each separately looks like a good task for GSoC time period.

- design relevant GUI agent/daemon changes, the GUI protocol should not be affected
- consider window decoration handling - VM should have no way of spoofing those, so it must be enforced by GUI daemon (either client-side - by GUI daemon itself, or server-side, based on hints given by GUI daemon)
- implement relevant GUI agent/daemon changes
- implement tests for new GUI handling, similar to existing tests for X11 based GUI

Relevant links:

- [Low level GUI documentation](/doc/gui/)
- [qubes-gui-agent-linux](https://github.com/qubesos/qubes-gui-agent-linux)
- [qubes-gui-daemon](https://github.com/qubesos/qubes-gui-daemon)
- [Use Wayland instead of X11 to increase performance](https://github.com/qubesos/qubes-issues/issues/3366)

**Knowledge prerequisite**:

- Wayland architecture
- basics of X11 (for understanding existing code)
- C language
- using shared memory (synchronization methods etc)

**Mentor**: [Marek Marczykowski-Górecki](/team/).

-->

### Qubes Live USB

Expand Down Expand Up @@ -252,26 +213,6 @@ details: [#1552](https://github.com/QubesOS/qubes-issues/issues/1552),

**Mentor**: [Frédéric Pierret](/team/)

<!--
### Unikernel-based firewallvm with Qubes firewall settings support

REMOVED as of January 2020: work is being done on this

**Project**: Unikernel based firewallvm with Qubes firewall settings support

**Brief explanation**: [blog post](https://roscidus.com/blog/blog/2016/01/01/a-unikernel-firewall-for-qubesos/), [repo](https://github.com/talex5/qubes-mirage-firewall)

**Expected results**: A firewall implemented as a unikernel which supports all the networking-related functionality as the default sys-firewall VM, including configuration via Qubes Manager. Other duties currently assigned to sys-firewall such as the update proxy may need to be appropriately migrated first.

**Knowledge prerequisite**:

- [OCaml](https://ocaml.org/) + [MirageOS](https://mirage.io/) or other unikernel framework,
- Xen network stack,
- Qubes networking model & firewall semantics.

**Mentor**: [Thomas Leonard](mailto:[email protected]), [Marek Marczykowski-Górecki](/team/)
-->

### LogVM(s)

**Project**: LogVM(s)
Expand Down Expand Up @@ -461,44 +402,6 @@ Some related discussion:
**Mentor**: [Marek Marczykowski-Górecki](/team/)


<!--

REMOVED as of February 2021: work is being done on this

### Porting Qubes to POWER9/PPC64

**Project**: Porting Qubes to POWER9/ppc64

**Brief explanation**:

Qubes currently supports the x86_64 CPU architecture. PowerPC is desirable for security purposes as it is the only architecture where one can get performant hardware with entirely open source firmware. Xen has **deprecated** support for Power9/PPC64 processors. Here are two directions to tackle this project from:

- Port Qubes to KVM then work on ppc64 specifics
- Implement some missing functionality in KVM then implement KVM support in the Qubes Hypervisor Abstraction Layer and build process. Improving the HAL will also be beneficial for simplifying the process of porting to further architectures and hypervisors.

- Port Xen to ppc64 then work on Qubes specifics
- For more information on porting Xen see [this thread](https://markmail.org/message/vuk7atnyqfq52epp).

More information and further links can be found in the related issue:
[#4318](https://github.com/QubesOS/qubes-issues/issues/4318).

**Expected results**:

- Add cross-compilation support to qubes-builder and related components.
- Make ppc64 specific adjustments to Qubes toolstacks/manager (including passthrough of devices from device tree to guest domains).
- ppc64 specific integration and unit tests.
- Production of generic u-boot or uefi capable image/iso for target hardware.

**Knowledge prerequisite**:

- Libvirt and Qubes toolstacks (C and python languages).
- KVM or XEN internals
- General ppc64 architecture knowledge.

**Mentor**: [Marek Marczykowski-Górecki](/team/)

-->

### Android development in Qubes

**Project**: Research running Android in Qubes VM (probably HVM) and connecting it to Android Studio
Expand Down Expand Up @@ -538,12 +441,14 @@ Since the Admin API is continuously growing and changing, continuous security as
A [Fuzzer](https://en.wikipedia.org/wiki/Fuzzing) would help to automate part of these assessments.

**Expected results**:

- fully automated & extensible Fuzzer for parts of the Admin API
- user & developer documentation

**Difficulty**: medium

**Prerequisites**:

- basic Python understanding
- some knowledge about fuzzing & existing fuzzing frameworks (e.g. [oss-fuzz](https://github.com/google/oss-fuzz/tree/master/projects/qubes-os))
- a hacker's curiosity
Expand All @@ -560,13 +465,15 @@ A [Fuzzer](https://en.wikipedia.org/wiki/Fuzzing) would help to automate part of
**Brief explanation**: Since recently, Xen supports "unified EFI boot" which allows to sign not only Xen binary itself, but also dom0 kernel and their parameters. While the base technology is there, enabling it is a painful and complex process. The goal of this project is to integrate configuration of this feature into Qubes, automating as much as possible. See discussion in [issue #4371](https://github.com/QubesOS/qubes-issues/issues/4371)

**Expected results**:

- a tool to prepare relevant boot files for unified Xen EFI boot - this includes collecting Xen, dom0 kernel, initramfs, config file, and possibly few more (ucode update?); the tool should then sign the file with user provided key (preferably propose to generate it too)
- integrate it with updates mechanism, so new Xen or dom0 kernel will be picked up automatically
- include a fallback configuration that can be used for troubleshooting (main unified Xen EFI intentionally does not allow to manipulate parameters at boot time)

**Difficulty**: hard

**Knowledge prerequisite**:

- basic understanding of Secure Boot
- Bash and Python scripting

Expand All @@ -586,6 +493,7 @@ A [Fuzzer](https://en.wikipedia.org/wiki/Fuzzing) would help to automate part of
**Difficulty**: medium

**Knowledge prerequisite**:

- Python scripting
- Basic knowledge of Linux system services management (systemd, syslog etc)

Expand Down
14 changes: 7 additions & 7 deletions developer/releases/4_2/release-notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,17 +56,17 @@ We strongly recommend [updating Qubes OS](/doc/how-to-update/) immediately after

- Qubes 4.2.2 includes a fix for [#8332: File-copy qrexec service is overly restrictive](https://github.com/QubesOS/qubes-issues/issues/8332). As explained in the issue comments, we introduced a change in Qubes 4.2.0 that caused inter-qube file-copy/move actions to reject filenames containing, e.g., non-Latin characters and certain symbols. The rationale for this change was to mitigate the security risks associated with unusual unicode characters and invalid encoding in filenames, which some software might handle in an unsafe manner and which might cause confusion for users. Such a change represents a trade-off between security and usability.

After the change went live, we received several user reports indicating more severe usability problems than we had anticipated. Moreover, these problems were prompting users to resort to dangerous workarounds (such as packing files into an archive format prior to copying) that carry far more risk than the original risk posed by the unrestricted filenames. In addition, we realized that this was a backward-incompatible change that should not have been introduced in a minor release in the first place.
- After the change went live, we received several user reports indicating more severe usability problems than we had anticipated. Moreover, these problems were prompting users to resort to dangerous workarounds (such as packing files into an archive format prior to copying) that carry far more risk than the original risk posed by the unrestricted filenames. In addition, we realized that this was a backward-incompatible change that should not have been introduced in a minor release in the first place.

Therefore, we have decided, for the time being, to restore the original (pre-4.2) behavior by introducing a new `allow-all-names` argument for the `qubes.Filecopy` service. By default, `qvm-copy` and similar tools will use this less restrictive service (`qubes.Filecopy +allow-all-names`) whenever they detect any files that would be have been blocked by the more restrictive service (`qubes.Filecopy +`). If no such files are detected, they will use the more restrictive service.
- Therefore, we have decided, for the time being, to restore the original (pre-4.2) behavior by introducing a new `allow-all-names` argument for the `qubes.Filecopy` service. By default, `qvm-copy` and similar tools will use this less restrictive service (`qubes.Filecopy +allow-all-names`) whenever they detect any files that would be have been blocked by the more restrictive service (`qubes.Filecopy +`). If no such files are detected, they will use the more restrictive service.

Users who wish to opt for the more restrictive 4.2.0 and 4.2.1 behavior can do so by modifying their RPC policy rules. To switch a single rule to the more restrictive behavior, change `*` in the argument column to `+` (i.e., change "any argument" to "only empty"). To use the more restrictive behavior globally, add the following "deny" rule before all other relevant rules:
- Users who wish to opt for the more restrictive 4.2.0 and 4.2.1 behavior can do so by modifying their RPC policy rules. To switch a single rule to the more restrictive behavior, change `*` in the argument column to `+` (i.e., change "any argument" to "only empty"). To use the more restrictive behavior globally, add the following "deny" rule before all other relevant rules:

```
qubes.Filecopy +allow-all-names @anyvm @anyvm deny
```
```
qubes.Filecopy +allow-all-names @anyvm @anyvm deny
```

For more information, see [RPC policies](/doc/rpc-policy/) and [Qube configuration interface](/doc/vm-interface/#qubes-rpc).
- For more information, see [RPC policies](/doc/rpc-policy/) and [Qube configuration interface](/doc/vm-interface/#qubes-rpc).

## Download

Expand Down
3 changes: 1 addition & 2 deletions developer/services/admin-api.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@ ref: 36
title: Admin API
---

_You may also be interested in the article
[Introducing the Qubes Admin API](/news/2017/06/27/qubes-admin-api/)._
_You may also be interested in the article [Introducing the Qubes Admin API](/news/2017/06/27/qubes-admin-api/)._

## Goals

Expand Down
Loading